Date: Sat, 14 Apr 2012 19:06:56 +0300 From: Mikolaj Golub <trociny@freebsd.org> To: Jaakko Heinonen <jh@FreeBSD.org> Cc: svn-src-head@freebsd.org, Kevin Lo <kevlo@FreeBSD.org>, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r230252 - head/sys/fs/tmpfs Message-ID: <86pqbawb4v.fsf@kopusha.home.net> In-Reply-To: <20120413061139.GA2370@a91-153-116-96.elisa-laajakaista.fi> (Jaakko Heinonen's message of "Fri, 13 Apr 2012 09:11:39 %2B0300") References: <201201170125.q0H1PrlJ061058@svn.freebsd.org> <20120117171031.GA2316@a91-153-116-96.elisa-laajakaista.fi> <86obtvvr4v.fsf@kopusha.home.net> <20120122134218.GA2247@a91-153-116-96.elisa-laajakaista.fi> <86lioztzh5.fsf@kopusha.home.net> <20120123153457.GA2246@a91-153-116-96.elisa-laajakaista.fi> <86vco2yvrt.fsf@kopusha.home.net> <20120413061139.GA2370@a91-153-116-96.elisa-laajakaista.fi>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 13 Apr 2012 09:11:39 +0300 Jaakko Heinonen wrote: JH> On 2012-01-23, Mikolaj Golub wrote: >> I see two issues with this patch: JH> What do you think about this patch? I think it is much better than we have currently :-). JH> %%% JH> Index: sys/fs/tmpfs/tmpfs.h JH> =================================================================== JH> --- sys/fs/tmpfs/tmpfs.h (revision 234201) JH> +++ sys/fs/tmpfs/tmpfs.h (working copy) JH> @@ -387,6 +387,9 @@ struct tmpfs_mount { JH> * tmpfs_pool.c. */ JH> uma_zone_t tm_dirent_pool; JH> uma_zone_t tm_node_pool; JH> + JH> + /* Read-only status. */ JH> + int tm_ronly; JH> }; JH> #define TMPFS_LOCK(tm) mtx_lock(&(tm)->allnode_lock) JH> #define TMPFS_UNLOCK(tm) mtx_unlock(&(tm)->allnode_lock) JH> Index: sys/fs/tmpfs/tmpfs_vfsops.c JH> =================================================================== JH> --- sys/fs/tmpfs/tmpfs_vfsops.c (revision 234201) JH> +++ sys/fs/tmpfs/tmpfs_vfsops.c (working copy) JH> @@ -82,6 +82,10 @@ static const char *tmpfs_opts[] = { JH> NULL JH> }; JH> JH> +static const char *tmpfs_updateopts[] = { JH> + "from", "export", NULL JH> +}; JH> + JH> /* --------------------------------------------------------------------- */ JH> JH> static int JH> @@ -150,12 +154,13 @@ tmpfs_mount(struct mount *mp) JH> return (EINVAL); JH> JH> if (mp->mnt_flag & MNT_UPDATE) { JH> - /* JH> - * Only support update mounts for NFS export. JH> - */ JH> - if (vfs_flagopt(mp->mnt_optnew, "export", NULL, 0)) JH> - return (0); JH> - return (EOPNOTSUPP); JH> + /* Only support update mounts for certain options. */ JH> + if (vfs_filteropt(mp->mnt_optnew, tmpfs_updateopts) != 0) JH> + return (EOPNOTSUPP); JH> + if (vfs_flagopt(mp->mnt_optnew, "ro", NULL, 0) != JH> + ((struct tmpfs_mount *)mp->mnt_data)->tm_ronly) JH> + return (EOPNOTSUPP); JH> + return (0); JH> } JH> JH> vn_lock(mp->mnt_vnodecovered, LK_SHARED | LK_RETRY); JH> @@ -228,6 +233,7 @@ tmpfs_mount(struct mount *mp) JH> tmpfs_node_ctor, tmpfs_node_dtor, JH> tmpfs_node_init, tmpfs_node_fini, JH> UMA_ALIGN_PTR, 0); JH> + tmp->tm_ronly = (mp->mnt_flag & MNT_RDONLY) != 0; JH> JH> /* Allocate the root node. */ JH> error = tmpfs_alloc_node(tmp, VDIR, root_uid, JH> %%% JH> -- JH> Jaakko -- Mikolaj Golub
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86pqbawb4v.fsf>