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>
index | next in thread | previous in thread | raw e-mail
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
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86pqbawb4v.fsf>
