Message ID | 1375279301-48950-1-git-send-email-smayhew@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 31 Jul 2013 10:01:41 -0400 Scott Mayhew <smayhew@redhat.com> wrote: > The sync mount option stopped working for NFSv4 mounts after commit > c02d7adf8c5429727a98bad1d039bccad4c61c50 (NFSv4: Replace nfs4_path_walk() with > FS path lookup in a private namespace). If MS_SYNCHRONOUS is set in the > super_block that we're cloning from, then it should be set in the new > super_block as well. > > Signed-off-by: Scott Mayhew <smayhew@redhat.com> > --- > fs/nfs/super.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/fs/nfs/super.c b/fs/nfs/super.c > index 71fdc0d..f6db66d 100644 > --- a/fs/nfs/super.c > +++ b/fs/nfs/super.c > @@ -2478,6 +2478,10 @@ struct dentry *nfs_fs_mount_common(struct nfs_server *server, > if (server->flags & NFS_MOUNT_NOAC) > sb_mntdata.mntflags |= MS_SYNCHRONOUS; > > + if (mount_info->cloned != NULL && mount_info->cloned->sb != NULL) > + if (mount_info->cloned->sb->s_flags & MS_SYNCHRONOUS) > + sb_mntdata.mntflags |= MS_SYNCHRONOUS; > + > /* Get a superblock - note that we may end up sharing one that already exists */ > s = sget(nfs_mod->nfs_fs, compare_super, nfs_set_super, flags, &sb_mntdata); > if (IS_ERR(s)) { Might also consider this for stable, since it's a regression, though it is a relatively minor bug... Reviewed-and-Tested-by: Jeff Layton <jlayton@redhat.com> -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 71fdc0d..f6db66d 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -2478,6 +2478,10 @@ struct dentry *nfs_fs_mount_common(struct nfs_server *server, if (server->flags & NFS_MOUNT_NOAC) sb_mntdata.mntflags |= MS_SYNCHRONOUS; + if (mount_info->cloned != NULL && mount_info->cloned->sb != NULL) + if (mount_info->cloned->sb->s_flags & MS_SYNCHRONOUS) + sb_mntdata.mntflags |= MS_SYNCHRONOUS; + /* Get a superblock - note that we may end up sharing one that already exists */ s = sget(nfs_mod->nfs_fs, compare_super, nfs_set_super, flags, &sb_mntdata); if (IS_ERR(s)) {
The sync mount option stopped working for NFSv4 mounts after commit c02d7adf8c5429727a98bad1d039bccad4c61c50 (NFSv4: Replace nfs4_path_walk() with FS path lookup in a private namespace). If MS_SYNCHRONOUS is set in the super_block that we're cloning from, then it should be set in the new super_block as well. Signed-off-by: Scott Mayhew <smayhew@redhat.com> --- fs/nfs/super.c | 4 ++++ 1 file changed, 4 insertions(+)