On Mon, Jun 28, 2021 at 6:06 PM Trond Myklebust <trondmy@xxxxxxxxxxxxxxx> wrote: > > On Mon, 2021-06-28 at 16:23 -0400, Olga Kornievskaia wrote: > > Hi folks, > > > > I have a general question of why the client doesn't throw away the > > cached server's capabilities on server reboot. Say a client mounted a > > server when the server didn't support security_labels, then the > > server > > was rebooted and support was enabled. Client re-establishes its > > clientid/session, recovers state, but assumes all the old > > capabilities > > apply. A remount is required to clear old/find new capabilities. The > > opposite is true that a capability could be removed (but I'm assuming > > that's a less practical example). > > > > I'm curious what are the problems of clearing server capabilities and > > rediscovering them on reboot? Is it because a local filesystem could > > never have its attributes changed and thus a network file system > > can't > > either? > > > > Thank you. > > In my opinion, the client should aim for the absolute minimum overhead > on a server reboot. The goal should be to recover state and get I/O > started again as quickly as possible. Detection of new features, etc > can wait until the client needs to restart. Do I interpret this correctly: no capability discoveries before RECLAIM_COMPLETE but perhaps after? I agree that reboot recovery should be done as quickly as possible. If it's some time after, then perhaps it can be done on-demand thru say nfs sysfs api: have ability to clear current capabilities (or a specific one) and do discover new ones? The use case I'm going for is when a server upgrades and comes up with support for new features. Currently, it requires a client re-mount. But perhaps requiring "mount -o remount" in that case isn't any different than requiring use of sysfs. Thank you for the feedback. > > -- > Trond Myklebust > Linux NFS client maintainer, Hammerspace > trond.myklebust@xxxxxxxxxxxxxxx > >