[PATCH] knfsd: add some new fsid types
Add support for using a filesystem UUID to identify and export point in the filehandle. For NFSv2, this UUID is xor-ed down to 4 or 8 bytes so that it doesn't take up too much room. For NFSv3+, we use the full 16 bytes, and possibly also a 64bit inode number for exports beneath the root of a filesystem. When generating an fsid to return in 'stat' information, use the UUID (hashed down to size) if it is available and a small 'fsid' was not specifically provided. Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
982aedfd09
commit
af6a4e280e
@@ -254,18 +254,6 @@ void nfsd_lockd_shutdown(void);
|
||||
*/
|
||||
extern struct timeval nfssvc_boot;
|
||||
|
||||
static inline int is_fsid(struct svc_fh *fh, struct knfsd_fh *reffh)
|
||||
{
|
||||
if (fh->fh_export->ex_flags & NFSEXP_FSID) {
|
||||
struct vfsmount *mnt = fh->fh_export->ex_mnt;
|
||||
if (!old_valid_dev(mnt->mnt_sb->s_dev) ||
|
||||
(reffh->fh_version == 1 && reffh->fh_fsid_type == 1))
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#ifdef CONFIG_NFSD_V4
|
||||
|
||||
/* before processing a COMPOUND operation, we have to check that there
|
||||
|
Reference in New Issue
Block a user