Cleanup macros for distinguishing mandatory locks
authorPavel Emelyanov <xemul@openvz.org>
Mon, 1 Oct 2007 21:41:11 +0000 (14:41 -0700)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Tue, 9 Oct 2007 22:32:46 +0000 (18:32 -0400)
commita16877ca9cec211708a161057a7cbfbf2cbc3a53
treea114bfe588af58047b1eb2aa1f57ac4b890c01a6
parent98257af5a2ad0c5b502ebd07094d9fd8ce87acef
Cleanup macros for distinguishing mandatory locks

The combination of S_ISGID bit set and S_IXGRP bit unset is used to mark the
inode as "mandatory lockable" and there's a macro for this check called
MANDATORY_LOCK(inode).  However, fs/locks.c and some filesystems still perform
the explicit i_mode checking.  Besides, Andrew pointed out, that this macro is
buggy itself, as it dereferences the inode arg twice.

Convert this macro into static inline function and switch its users to it,
making the code shorter and more readable.

The __mandatory_lock() helper is to be used in places where the IS_MANDLOCK()
for superblock is already known to be true.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: "J. Bruce Fields" <bfields@fieldses.org>
Cc: David Howells <dhowells@redhat.com>
Cc: Eric Van Hensbergen <ericvh@gmail.com>
Cc: Ron Minnich <rminnich@sandia.gov>
Cc: Latchesar Ionkov <lucho@ionkov.net>
Cc: Steven Whitehouse <swhiteho@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/locks.c
fs/nfsd/nfs4state.c
fs/nfsd/vfs.c
fs/read_write.c
include/linux/fs.h