On Mon, 21 Mar 2016 11:39:14 -0300 Christian Robottom Reis <kiko@xxxxxxx> wrote: > Hello there, > > I run a diskless network where every user NFS mounts pretty much > everything including /home and /var/mail. It's often the case that a > misbehaved client will leave a locked file stuck on the server -- today > it is a file in a user's mail/ directory. > > Is there a way to query what files are being held locked by clients? I'm > sure the kernel knows, as it is able to enforce the lock, but it isn't > obvious how to extract that information -- lsof is documented to and > indeed does not return any information pertaining NFS client locks, and > I'm not clear whether /proc/locks (on the server side obviously) does or > not. > /proc/locks will generally show you all of the locks being held (assuming the filesystem's ->lock routine records the locks). It's not really possible to match those up with a particular client though. > A related question is whether it is possible to break a client lock > without rebooting the server (or restarting the NFS services). > > Does anyone have any insight to share? Thanks, I assume you're using NFSv3? What happens when the client "misbehaves"? Are the clients dropping offline or do you have applications that are just sitting on the lock and not releasing it? If the clients are just going away without unlocking first, then you could consider using NFSv4, which has a lease-based locking. If the client goes away for a while (90s or so), then it'll lose its lock. Alternately, there is the /proc/fs/nfsd/unlock_ip interface. Supposedly you can echo an address into there and it'll forcibly drop all of the locks that that that client holds. I've not used that so YMMV there. -- Jeff Layton <jlayton@xxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html