These two nfsd bugfixes are suitable for 2.6.35: git://linux-nfs.org/~bfields/linux.git for-2.6.35 Christoph Hellwig (1): nfsd: nfsd_setattr needs to call commit_metadata J. Bruce Fields (2): nfsd4: shut down callback queue outside state lock Merge branch 'for-2.6.34-incoming' into for-2.6.35-incoming commit 44b56603c4c476b845a824cff6fe905c6268b2a1 Merge: c3935e3 b160fda Author: J. Bruce Fields <bfields@xxxxxxxxxxxxxx> Date: Tue Jun 8 20:05:18 2010 -0400 Merge branch 'for-2.6.34-incoming' into for-2.6.35-incoming commit c3935e30495869dd611e1cd62253c94ebc7c6c04 Author: J. Bruce Fields <bfields@xxxxxxxxxxxxxx> Date: Fri Jun 4 16:42:08 2010 -0400 nfsd4: shut down callback queue outside state lock This reportedly causes a lockdep warning on nfsd shutdown. That looks like a false positive to me, but there's no reason why this needs the state lock anyway. Reported-by: Jeff Layton <jlayton@xxxxxxxxxx> Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxxxxxx> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 12f7109..4a27347 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -4122,8 +4122,8 @@ nfs4_state_shutdown(void) nfs4_lock_state(); nfs4_release_reclaim(); __nfs4_state_shutdown(); - nfsd4_destroy_callback_queue(); nfs4_unlock_state(); + nfsd4_destroy_callback_queue(); } /* commit b160fdabe93a8a53094f90f02bf4dcb500782aab Author: Christoph Hellwig <hch@xxxxxx> Date: Tue Jun 1 21:59:18 2010 +0200 nfsd: nfsd_setattr needs to call commit_metadata The conversion of write_inode_now calls to commit_metadata in commit f501912a35c02eadc55ca9396ece55fe36f785d0 missed out the call in nfsd_setattr. But without this conversion we can't guarantee that a SETATTR request has actually been commited to disk with XFS, which causes a regression from 2.6.32 (only for NFSv2, but anyway). Signed-off-by: Christoph Hellwig <hch@xxxxxx> Cc: stable@xxxxxxxxxx Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxxxxxx> diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 6dd5f19..3440dd8 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -443,8 +443,7 @@ nfsd_setattr(struct svc_rqst *rqstp, struct svc_fh *fhp, struct iattr *iap, if (size_change) put_write_access(inode); if (!err) - if (EX_ISSYNC(fhp->fh_export)) - write_inode_now(inode, 1); + commit_metadata(fhp); out: return err; -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html