[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <f347aaf5-cd16-d2f1-477f-375aa8de9210@suse.com>
Date: Mon, 16 Jan 2017 11:31:48 +0800
From: Eric Ren <zren@...e.com>
To: Junxiao Bi <junxiao.bi@...cle.com>, ocfs2-devel@....oracle.com
Cc: akpm@...ux-foundation.org, mfasheh@...sity.com, jlbec@...lplan.org,
ghe@...e.com, jiangqi903@...il.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] ocfs2/dlmglue: prepare tracking logic to avoid
recursive cluster lock
Hi Junxiao,
>> OK, good suggestion. Hrm, but in order to align with "ocfs2_inc_holders", I
>> think it's good to keep those function names as it is;-)
> that name is also not very clear. Maybe you can make another patch to
> clear it.
Maybe, the name completeness needs to compromise with the name length at
some time. One of basic rules is whether the name may confuse the reader.
In this case, "ocfs2_inc_holders" in dlmglue.c sounds good to me, not ambiguous.
I want to go with it. Anyone who don't like the name can propose their patch for it;-)
Thanks,
Eric
>
> Thanks,
> Junxiao.
>
>
>> Thanks for your review!
>> Eric
>>
>>> Thanks,
>>> Junxiao.
>>>
>>>> + struct list_head oh_list;
>>>> + struct pid *oh_owner_pid;
>>>> +};
>>>> +
>>>> /* ocfs2_inode_lock_full() 'arg_flags' flags */
>>>> /* don't wait on recovery. */
>>>> #define OCFS2_META_LOCK_RECOVERY (0x01)
>>>> @@ -77,6 +82,8 @@ struct ocfs2_orphan_scan_lvb {
>>>> #define OCFS2_META_LOCK_NOQUEUE (0x02)
>>>> /* don't block waiting for the downconvert thread, instead return
>>>> -EAGAIN */
>>>> #define OCFS2_LOCK_NONBLOCK (0x04)
>>>> +/* just get back disk inode bh if we've got cluster lock. */
>>>> +#define OCFS2_META_LOCK_GETBH (0x08)
>>>> /* Locking subclasses of inode cluster lock */
>>>> enum {
>>>> @@ -170,4 +177,15 @@ void ocfs2_put_dlm_debug(struct ocfs2_dlm_debug
>>>> *dlm_debug);
>>>> /* To set the locking protocol on module initialization */
>>>> void ocfs2_set_locking_protocol(void);
>>>> +
>>>> +/*
>>>> + * Keep a list of processes who have interest in a lockres.
>>>> + * Note: this is now only uesed for check recursive cluster lock.
>>>> + */
>>>> +inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
>>>> + struct ocfs2_holder *oh);
>>>> +inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
>>>> + struct ocfs2_holder *oh);
>>>> +inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct
>>>> ocfs2_lock_res *lockres);
>>>> +
>>>> #endif /* DLMGLUE_H */
>>>> diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
>>>> index 7e5958b..0c39d71 100644
>>>> --- a/fs/ocfs2/ocfs2.h
>>>> +++ b/fs/ocfs2/ocfs2.h
>>>> @@ -172,6 +172,7 @@ struct ocfs2_lock_res {
>>>> struct list_head l_blocked_list;
>>>> struct list_head l_mask_waiters;
>>>> + struct list_head l_holders;
>>>> unsigned long l_flags;
>>>> char l_name[OCFS2_LOCK_ID_MAX_LEN];
>>>>
>
Powered by blists - more mailing lists