Re: [PATCH] fix posix lock on NFS

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

 



Matthew Wilcox wrote:

On Tue, Jan 03, 2006 at 02:39:24PM -0500, Peter Staubach wrote:
	/* No mandatory locks over NFS */
-	if ((inode->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID)
+	if ((inode->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID &&
+	    fl->fl_type != F_UNLCK)
Just out of curiosity, what is this if() statement intended to protect?
For locking purposes, why would the client care if the file has the
mandatory lock bits set?

Mandatory locks aren't mandatory for other clients.

So?

I guess that I don't understand this response.

The server is responsible for keeping itself from attempting to access
a mandatory lock file.  The client is not responsible for doing so and
trying to help the server is kind of a waste of time, mostly.

The mandatory lock mode bits really only come into play when attempting
to read or write the file.  In this case, the system will automatically
try to take a lock for the process, if that process does not already
have a lock.  The server should prevent itself from trying to access
files like this in order to avoid DoS attacks.

The NFS client does not support mandatory locking, mostly due to the
possibility of DoS attacks and also due to the locking and NFS protocols
not being sufficiently aware of each other.  NFSv4 can be used to address
this latter problem, but probably not the former.

So, why deny lock requests for such files?  Especially on the client?

   Thanx...

      ps
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux