Skip site navigation (1)Skip section navigation (2)
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>