Re: [nfs-utils PATCH RFC v3 0/8] restore nfsdcld

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 4/16/19 12:46 PM, J. Bruce Fields wrote:
> I've really only skimmed the changelogs and documentation and such, but
> that all looks good to me, and I'm still expecting to commit the
> kernel-side patches for 5.2, so I'm favor of these nfs-utils patches
> instead, as long as they look good to Steve.
They look reasonable to me... Committed!!

steved.

> 
> --b.
> 
> On Tue, Mar 26, 2019 at 06:07:22PM -0400, Scott Mayhew wrote:
>> When nfsdcld was released, it was quickly deprecated in favor of the
>> nfsdcltrack usermodehelper, so as to not require another running daemon.
>> The nfsdcld code was removed from nfs-utils in 2012.  That prevents
>> NFSv4 clients from reclaiming locks from nfsd's running in containers,
>> since neither nfsdcltrack nor the legacy client tracking code work in
>> containers.  These patches restore the nfsdcld code.
>>
>> These patches are intended to go alongside some kernel patches that
>> introduce an enhancement that allows nfsd to "slurp" up the client
>> records during client tracking initialization and store them internally
>> in hash table.  This enables nfsd to check whether an NFSv4 client is
>> allowed to reclaim without having to do an upcall to nfsdcld.  It also
>> allows nfsd to decide to end the v4 grace period early if the number of
>> RECLAIM_COMPLETE operations it has received from "known" clients is
>> equal to the number of entries in the hash table.  It also allows nfsd
>> to skip the v4 grace period altogether if it knows there are no clients
>> allowed to reclaim.
>>
>> The new nfsdcld code will work with older kernels, however in that case
>> there is no ability for nfsd to exit the grace period early or skip the
>> grace period altogether.
>>
>> v3:
>> - removed PathExists restriction from the nfsdcld.service file
>> - added the ability to do a one-time upgrade from older client tracking
>>   methods (i.e. nfsdcltrack and/or the legacy v4recovery dir)
>> v2:
>> - Use sqlite3_column_int64() instead of sqlite3_column_int() to query
>>   the current & recovery values from the grace table
>> - Uncommented the nfsdcld section header in nfs.conf
>>
>> Scott Mayhew (8):
>>   Revert "nfsdcltrack: remove the nfsdcld daemon"
>>   nfsdcld: move nfsdcld to its own directory
>>   nfsdcld: a few enhancements
>>   nfsdcld: remove some unused functions
>>   nfsdcld: the -p option should specify the rpc_pipefs mountpoint
>>   nfsdcld: add /etc/nfs.conf support
>>   systemd: add a unit file for nfsdcld
>>   nfsdcld: add a facility for migrating from older client tracking
>>     methods
>>
>>  .gitignore                   |    1 +
>>  configure.ac                 |   23 +
>>  nfs.conf                     |    4 +
>>  support/include/cld.h        |    1 +
>>  systemd/nfs-server.service   |    2 +
>>  systemd/nfsdcld.service      |   10 +
>>  utils/Makefile.am            |    4 +
>>  utils/nfsdcld/Makefile.am    |   19 +
>>  utils/nfsdcld/cld-internal.h |   33 +
>>  utils/nfsdcld/legacy.c       |  180 ++++++
>>  utils/nfsdcld/legacy.h       |   24 +
>>  utils/nfsdcld/nfsdcld.c      |  774 ++++++++++++++++++++++++
>>  utils/nfsdcld/nfsdcld.man    |  199 ++++++
>>  utils/nfsdcld/sqlite.c       | 1109 ++++++++++++++++++++++++++++++++++
>>  utils/nfsdcld/sqlite.h       |   35 ++
>>  15 files changed, 2418 insertions(+)
>>  create mode 100644 systemd/nfsdcld.service
>>  create mode 100644 utils/nfsdcld/Makefile.am
>>  create mode 100644 utils/nfsdcld/cld-internal.h
>>  create mode 100644 utils/nfsdcld/legacy.c
>>  create mode 100644 utils/nfsdcld/legacy.h
>>  create mode 100644 utils/nfsdcld/nfsdcld.c
>>  create mode 100644 utils/nfsdcld/nfsdcld.man
>>  create mode 100644 utils/nfsdcld/sqlite.c
>>  create mode 100644 utils/nfsdcld/sqlite.h
>>
>> -- 
>> 2.17.2



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux