Date: Tue, 30 Oct 2012 06:59:08 -0700 From: Alfred Perlstein <bright@mu.org> To: Konstantin Belousov <kostikbel@gmail.com> Cc: "jh@freebsd.org" <jh@freebsd.org>, "stable@freebsd.org" <stable@freebsd.org>, "re@freebsd.org" <re@freebsd.org>, "kevlo@freebsd.org" <kevlo@freebsd.org> Subject: Re: tmpfs nfs exports? Message-ID: <E3D3E72E-5A96-4677-9D8B-9BEA664D7AF6@mu.org> In-Reply-To: <20121030120019.GU73505@kib.kiev.ua> References: <508FA008.2040503@mu.org> <20121030120019.GU73505@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks all. I will fix up the merge step and commit. Sent from my iPhone On Oct 30, 2012, at 5:00 AM, Konstantin Belousov <kostikbel@gmail.com> wrote: > On Tue, Oct 30, 2012 at 02:38:16AM -0700, Alfred Perlstein wrote: >> Hey folks, any reason why not to include the following patch in 9.1? It >> would be nice to have tmpfs be exportable. >> >> I'm good to commit it, I can also wait until post 9.1. > It is too late for 9.1. Patch is fine for stable/9, but you merged at > the wrong point. Merge at sys/, not at the root of the sources. > >> >> $ svn diff >> Index: . >> =================================================================== >> --- . (revision 242331) >> +++ . (working copy) >> >> Property changes on: . >> ___________________________________________________________________ >> Modified: svn:mergeinfo >> Merged /head:r234346 >> Index: sys >> =================================================================== >> --- sys (revision 242331) >> +++ sys (working copy) >> >> Property changes on: sys >> ___________________________________________________________________ >> Modified: svn:mergeinfo >> Merged /head/sys:r234346 >> Index: sys/fs >> =================================================================== >> --- sys/fs (revision 242331) >> +++ sys/fs (working copy) >> >> Property changes on: sys/fs >> ___________________________________________________________________ >> Modified: svn:mergeinfo >> Merged /head/sys/fs:r234346 >> Index: sys/fs/tmpfs/tmpfs.h >> =================================================================== >> --- sys/fs/tmpfs/tmpfs.h (revision 242331) >> +++ sys/fs/tmpfs/tmpfs.h (working copy) >> @@ -387,6 +387,9 @@ >> * tmpfs_pool.c. */ >> uma_zone_t tm_dirent_pool; >> uma_zone_t tm_node_pool; >> + >> + /* Read-only status. */ >> + int tm_ronly; >> }; >> #define TMPFS_LOCK(tm) mtx_lock(&(tm)->allnode_lock) >> #define TMPFS_UNLOCK(tm) mtx_unlock(&(tm)->allnode_lock) >> Index: sys/fs/tmpfs/tmpfs_vfsops.c >> =================================================================== >> --- sys/fs/tmpfs/tmpfs_vfsops.c (revision 242331) >> +++ sys/fs/tmpfs/tmpfs_vfsops.c (working copy) >> @@ -82,6 +82,10 @@ >> NULL >> }; >> >> +static const char *tmpfs_updateopts[] = { >> + "from", "export", NULL >> +}; >> + >> /* >> --------------------------------------------------------------------- */ >> >> static int >> @@ -193,10 +197,13 @@ >> return (EINVAL); >> >> if (mp->mnt_flag & MNT_UPDATE) { >> - /* XXX: There is no support yet to update file system >> - * settings. Should be added. */ >> - >> - return EOPNOTSUPP; >> + /* Only support update mounts for certain options. */ >> + if (vfs_filteropt(mp->mnt_optnew, tmpfs_updateopts) != 0) >> + return (EOPNOTSUPP); >> + if (vfs_flagopt(mp->mnt_optnew, "ro", NULL, 0) != >> + ((struct tmpfs_mount *)mp->mnt_data)->tm_ronly) >> + return (EOPNOTSUPP); >> + return (0); >> } >> >> vn_lock(mp->mnt_vnodecovered, LK_SHARED | LK_RETRY); >> @@ -269,6 +276,7 @@ >> tmpfs_node_ctor, tmpfs_node_dtor, >> tmpfs_node_init, tmpfs_node_fini, >> UMA_ALIGN_PTR, 0); >> + tmp->tm_ronly = (mp->mnt_flag & MNT_RDONLY) != 0; >> >> /* Allocate the root node. */ >> error = tmpfs_alloc_node(tmp, VDIR, root_uid,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E3D3E72E-5A96-4677-9D8B-9BEA664D7AF6>