Re: [RFC][PATCH 2/5] introduce simple_set_mnt_no_get() helper forNFS

From: Trond Myklebust
Date: Tue Apr 29 2008 - 17:35:17 EST



On Tue, 2008-04-29 at 11:59 -0700, Dave Hansen wrote:
> The next patch will introduce a list of all mounts for a given
> superblock. In order to keep the list, we need to make sure
> all filesystems attaching a mount to a superblock get added
> to this list.
>
> NFS currently bypasses the simple_set_mnt() function, and sets
> mnt_sb directly. This patch makes it use a helper function,
> instead.
>
> Signed-off-by: Dave Hansen <dave@xxxxxxxxxxxxxxxxxx>
> ---
>
> linux-2.6.git-dave/fs/namespace.c | 11 +++++++++--
> linux-2.6.git-dave/fs/nfs/super.c | 10 +++++-----
> linux-2.6.git-dave/include/linux/fs.h | 1 +
> 3 files changed, 15 insertions(+), 7 deletions(-)
>
> diff -puN fs/namespace.c~introduce_simple_set_mnt_no_get_helper_for_NFS fs/namespace.c
> --- linux-2.6.git/fs/namespace.c~introduce_simple_set_mnt_no_get_helper_for_NFS 2008-04-29 11:56:39.000000000 -0700
> +++ linux-2.6.git-dave/fs/namespace.c 2008-04-29 11:56:39.000000000 -0700
> @@ -402,12 +402,19 @@ static void __mnt_unmake_readonly(struct
> spin_unlock(&vfsmount_lock);
> }
>
> -int simple_set_mnt(struct vfsmount *mnt, struct super_block *sb)
> +int simple_set_mnt_no_get(struct vfsmount *mnt, struct super_block *sb)
> {
> mnt->mnt_sb = sb;
> - mnt->mnt_root = dget(sb->s_root);
> + add_mount_to_sb_list(mnt, sb);
> return 0;
> }
> +EXPORT_SYMBOL(simple_set_mnt_no_get);
> +
> +int simple_set_mnt(struct vfsmount *mnt, struct super_block *sb)
> +{
> + mnt->mnt_root = dget(sb->s_root);
> + return simple_set_mnt_no_get(mnt, sb);
> +}
>

My only concern is the proliferation of 'simple_*' operations: in some
cases in libfs.c we explicitly label those as being for in-memory/ramfs
filesystems, whereas in other cases (such as this one) the name appears
to be used for more generic functions.

Cheers
Trond

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/