public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: xfs@oss.sgi.com
Subject: [PATCH 1/3] xfs: tell lockdep about parent iolock usage in filestreams
Date: Sat, 6 Nov 2010 07:42:44 -0400	[thread overview]
Message-ID: <20101106114243.GB25395@infradead.org> (raw)
In-Reply-To: <20101106114226.GA25395@infradead.org>

The filestreams code may take the iolock on the parent inode while holding it
on a child.  This is the only place in XFS where we take both the child and
parent iolock, so just telling lockdep about it is enough.  The lock flag
required for that was already added as part of the ilock lockdep annotations
and unused so far.

Signed-off-by: Christoph Hellwig <hch@lst.de>

Index: xfs/fs/xfs/xfs_filestream.c
===================================================================
--- xfs.orig/fs/xfs/xfs_filestream.c	2010-11-02 14:28:57.888491016 -0400
+++ xfs/fs/xfs/xfs_filestream.c	2010-11-02 14:30:42.591824351 -0400
@@ -744,9 +744,15 @@ xfs_filestream_new_ag(
 	 * If the file's parent directory is known, take its iolock in exclusive
 	 * mode to prevent two sibling files from racing each other to migrate
 	 * themselves and their parent to different AGs.
+	 *
+	 * Note that we lock the parent directory iolock inside the child
+	 * iolock here.  That's fine as we never hold both parent and child
+	 * iolock in any other place.  This is different from the ilock,
+	 * which requires locking of the child after the parent for namespace
+	 * operations.
 	 */
 	if (pip)
-		xfs_ilock(pip, XFS_IOLOCK_EXCL);
+		xfs_ilock(pip, XFS_IOLOCK_EXCL | XFS_IOLOCK_PARENT);
 
 	/*
 	 * A new AG needs to be found for the file.  If the file's parent

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2010-11-06 11:41 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-06 11:42 a few patches for 2.6.37 Christoph Hellwig
2010-11-06 11:42 ` Christoph Hellwig [this message]
2010-11-06 11:42 ` [PATCH 2/3] xfs: fix a few compiler warnings with CONFIG_XFS_QUOTA=n Christoph Hellwig
2010-11-06 17:51   ` Andi Kleen
2010-11-06 17:56     ` Christoph Hellwig
2010-11-06 11:43 ` [PATCH 3/3] xfs: use hlist_add_fake Christoph Hellwig

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=20101106114243.GB25395@infradead.org \
    --to=hch@infradead.org \
    --cc=xfs@oss.sgi.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