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.

steved.
Author: Steve Dickson <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>

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

Reply via email to