Hi Neil- > On Jan 26, 2022, at 11:58 PM, NeilBrown <neilb@xxxxxxx> wrote: > > If a filesystem is exported to a client with NFSv4 and that client holds > a file open, the filesystem cannot be unmounted without either stopping the > NFS server completely, or blocking all access from that client > (unexporting all filesystems) and waiting for the lease timeout. > > For NFSv3 - and particularly NLM - it is possible to revoke all state by > writing the path to the filesystem into /proc/fs/nfsd/unlock_filesystem. > > This series extends this functionality to NFSv4. With this, to unmount > an exported filesystem is it sufficient to disable export of that > filesystem, and then write the path to unlock_filesystem. > > I've cursed mainly on NFSv4.1 and later for this. I haven't tested > yet with NFSv4.0 which has different mechanisms for state management. > > If this series is seen as a general acceptable approach, I'll look into > the NFSv4.0 aspects properly and make sure it works there. I've browsed this series and need to think about: - whether we want to enable administrative state revocation and - whether NFSv4.0 can support that reasonably In particular, are there security consequences for revoking state? What would applications see, and would that depend on which minor version is in use? Are there data corruption risks if this facility were to be misused? Also, Dai's courteous server work is something that potentially conflicts with some of this, and I'd like to see that go in first. Do you have specific user requests for this feature, and if so, what are the particular usage scenarios? > Thanks, > NeilBrown > > > --- > > NeilBrown (4): > nfsd: prepare for supporting admin-revocation of state > nfsd: allow open state ids to be revoked and then freed > nfsd: allow lock state ids to be revoked and then freed > nfsd: allow delegation state ids to be revoked and then freed > > > fs/nfsd/nfs4state.c | 105 ++++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 96 insertions(+), 9 deletions(-) > > -- > Signature You should fill this in. :-) -- Chuck Lever