[PATCH] NFSD: FIDs need to take precedence over UUIDs

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

 



[ Resent per Bruce's request]

Talking with Neil and Bruce, it seems somewhere down the
line UUIDs started to taking precedence over the setting 
fsid= export option when composing file handles which is wrong. 
This patch restores fsids taking precedence over UUIDs during
file handing composing.

One side note, this also can be done from mountd. 
See "[PATCH 5/9] Dynamic Pseudo Root - Release 3"
 (http://linux-nfs.org/pipermail/nfsv4/2008-November/009459.html)
Either way will work...

steved.


Author: Steve Dickson <steved@xxxxxxxxxx>
Date:   Thu Feb 14 15:48:20 EST 2008

    When determining the fsid_type in fh_compose(), the setting of 
    the FID via fsid= export option needs to take precedence over
    using the UUID device id. 
    
    Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>

diff -up linux-2.6.24.i686/fs/nfsd/nfsfh.c.orig linux-2.6.24.i686/fs/nfsd/nfsfh.c
--- linux-2.6.24.i686/fs/nfsd/nfsfh.c.orig	2008-02-14 12:52:46.000000000 -0500
+++ linux-2.6.24.i686/fs/nfsd/nfsfh.c	2008-02-14 14:13:09.000000000 -0500
@@ -410,6 +410,8 @@ fh_compose(struct svc_fh *fhp, struct sv
 				goto retry;
 			break;
 		}
+	} else if (exp->ex_flags & NFSEXP_FSID) {
+		fsid_type = FSID_NUM;
 	} else if (exp->ex_uuid) {
 		if (fhp->fh_maxsize >= 64) {
 			if (root_export)
@@ -422,9 +424,7 @@ fh_compose(struct svc_fh *fhp, struct sv
 			else
 				fsid_type = FSID_UUID4_INUM;
 		}
-	} else if (exp->ex_flags & NFSEXP_FSID)
-		fsid_type = FSID_NUM;
-	else if (!old_valid_dev(ex_dev))
+	} else if (!old_valid_dev(ex_dev))
 		/* for newer device numbers, we must use a newer fsid format */
 		fsid_type = FSID_ENCODE_DEV;
 	else


--
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

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux