From: Mark Fasheh <mfasheh@suse.de>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH 4/6] ocfs2: Implement delayed dropping of last dquot reference
Date: Tue, 25 Feb 2014 11:01:34 -0800 [thread overview]
Message-ID: <20140225190134.GI5716@wotan.suse.de> (raw)
In-Reply-To: <1392975904-16944-5-git-send-email-jack@suse.cz>
On Fri, Feb 21, 2014 at 10:45:02AM +0100, Jan Kara wrote:
> We cannot drop last dquot reference from downconvert thread as that
> creates the following deadlock:
>
> NODE 1 NODE2
> holds dentry lock for 'foo'
> holds inode lock for GLOBAL_BITMAP_SYSTEM_INODE
> dquot_initialize(bar)
> ocfs2_dquot_acquire()
> ocfs2_inode_lock(USER_QUOTA_SYSTEM_INODE)
> ...
> downconvert thread (triggered from another
> node or a different process from NODE2)
> ocfs2_dentry_post_unlock()
> ...
> iput(foo)
> ocfs2_evict_inode(foo)
> ocfs2_clear_inode(foo)
> dquot_drop(inode)
> ...
> ocfs2_dquot_release()
> ocfs2_inode_lock(USER_QUOTA_SYSTEM_INODE)
> - blocks
> finds we need more space in
> quota file
> ...
> ocfs2_extend_no_holes()
> ocfs2_inode_lock(GLOBAL_BITMAP_SYSTEM_INODE)
> - deadlocks waiting for
> downconvert thread
>
> We solve the problem by postponing dropping of the last dquot reference
> to a workqueue if it happens from the downconvert thread.
>
> Reviewed-by: Srinivas Eeda <srinivas.eeda@oracle.com>
> Signed-off-by: Jan Kara <jack@suse.cz>
Looks good, I especially like the usuage of llist.
Reviewed-by: Mark Fasheh <mfasheh@suse.de>
--Mark
--
Mark Fasheh
next prev parent reply other threads:[~2014-02-25 19:01 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-21 9:44 [Ocfs2-devel] [PATCH 0/6 v3] ocfs2: Avoid pending orphaned inodes Jan Kara
2014-02-21 9:44 ` [Ocfs2-devel] [PATCH 1/6] ocfs2: Remove OCFS2_INODE_SKIP_DELETE flag Jan Kara
2014-02-25 0:07 ` Mark Fasheh
2014-02-21 9:45 ` [Ocfs2-devel] [PATCH 2/6] ocfs2: Move dquot_initialize() in ocfs2_delete_inode() somewhat later Jan Kara
2014-02-25 0:07 ` Mark Fasheh
2014-02-21 9:45 ` [Ocfs2-devel] [PATCH 3/6] quota: Provide function to grab quota structure reference Jan Kara
2014-02-25 18:58 ` Mark Fasheh
2014-02-21 9:45 ` [Ocfs2-devel] [PATCH 4/6] ocfs2: Implement delayed dropping of last dquot reference Jan Kara
2014-02-25 19:01 ` Mark Fasheh [this message]
2014-02-21 9:45 ` [Ocfs2-devel] [PATCH 5/6] ocfs2: Avoid blocking in ocfs2_mark_lockres_freeing() in downconvert thread Jan Kara
2014-02-25 19:12 ` Mark Fasheh
2014-02-25 20:03 ` Srinivas Eeda
2014-02-21 9:45 ` [Ocfs2-devel] [PATCH 6/6] ocfs2: Revert iput deferring code in ocfs2_drop_dentry_lock Jan Kara
2014-02-25 20:02 ` Mark Fasheh
2014-02-25 21:18 ` Jan Kara
-- strict thread matches above, loose matches on Subject: below --
2014-02-26 16:49 [Ocfs2-devel] [PATCH 0/6 v5] ocfs2: Avoid pending orphaned inodes Jan Kara
2014-02-26 16:49 ` [Ocfs2-devel] [PATCH 4/6] ocfs2: Implement delayed dropping of last dquot reference Jan Kara
2014-02-26 11:05 [Ocfs2-devel] [PATCH 0/6 v4] ocfs2: Avoid pending orphaned inodes Jan Kara
2014-02-26 11:05 ` [Ocfs2-devel] [PATCH 4/6] ocfs2: Implement delayed dropping of last dquot reference Jan Kara
2014-02-20 15:18 [Ocfs2-devel] [PATCH 0/6 v2] ocfs2: Avoid pending orphaned inodes Jan Kara
2014-02-20 15:18 ` [Ocfs2-devel] [PATCH 4/6] ocfs2: Implement delayed dropping of last dquot reference Jan Kara
2014-02-21 5:15 ` Srinivas Eeda
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140225190134.GI5716@wotan.suse.de \
--to=mfasheh@suse.de \
--cc=ocfs2-devel@oss.oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).