[PATCH 0/7] extent list locking fixes V2

Ben Myers bpm at sgi.com
Fri Dec 6 11:57:26 CST 2013


On Fri, Dec 06, 2013 at 09:54:44AM -0800, Christoph Hellwig wrote:
> On Fri, Dec 06, 2013 at 11:37:29AM -0600, Ben Myers wrote:
> > Hey Christoph,
> > 
> > On Fri, Dec 06, 2013 at 08:48:19AM -0800, Christoph Hellwig wrote:
> > > Fixed the review feedback, and includes Bens original patch for completeness.
> > 
> > I ran your initial series overnight with xfstests... oddly I hit this:
> 
> I think I understand the problem:
> 
> uint
> xfs_ilock_map_shared(
> 	xfs_inode_t     *ip)
> {
> 	uint    lock_mode;
> 
> 	if ((ip->i_d.di_format == XFS_DINODE_FMT_BTREE) &&
> 	    ((ip->i_df.if_flags & XFS_IFEXTENTS) == 0)) {
> 	    	lock_mode = XFS_ILOCK_EXCL;
> 	} else {
> 		lock_mode = XFS_ILOCK_SHARED;
> 	}
> 
> 	xfs_ilock(ip, lock_mode);
> 	return lock_mode;
> }
> 
> This only looks at the data fork, while we'd need to use it for the
> fork we plan to operate on.  Looks like we'll need some bigger surgery
> this area.

Ah, that makes sense.  Maybe just add a flags arg?



More information about the xfs mailing list