nfsd: vfs_llseek() with 32 or 64 bit offsets (hashes)
authorBernd Schubert <bernd.schubert@itwm.fraunhofer.de>
Mon, 19 Mar 2012 02:44:50 +0000 (22:44 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 19 Mar 2012 02:44:50 +0000 (22:44 -0400)
commit06effdbb49af5f6c7d20affaec74603914acc768
tree6cb59cbb05565e6c23c8ecf5eb79618083f330f7
parent999448a8c0202d8c41711c92385323520644527b
nfsd: vfs_llseek() with 32 or 64 bit offsets (hashes)

Use 32-bit or 64-bit llseek() hashes for directory offsets depending on
the NFS version. NFSv2 gets 32-bit hashes only.

NOTE: This patch got rather complex as Christoph asked to set the
filp->f_mode flag in the open call or immediatly after dentry_open()
in nfsd_open() to avoid races.
Personally I still do not see a reason for that and in my opinion
FMODE_32BITHASH/FMODE_64BITHASH flags could be set nfsd_readdir(), as it
follows directly after nfsd_open() without a chance of races.

Signed-off-by: Bernd Schubert <bernd.schubert@itwm.fraunhofer.de>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Acked-by: J. Bruce Fields<bfields@redhat.com>
fs/nfsd/vfs.c
fs/nfsd/vfs.h