diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c
index 8e6fd41..0f4f9ca 100644
--- a/fs/isofs/inode.c
+++ b/fs/isofs/inode.c
@@ -153,6 +153,8 @@
 	unsigned int blocksize;
 	mode_t fmode;
 	mode_t dmode;
+	char uid_set;
+	char gid_set;
 	gid_t gid;
 	uid_t uid;
 	char *iocharset;
@@ -370,6 +372,8 @@
 	popt->nocompress = 0;
 	popt->blocksize = 1024;
 	popt->fmode = popt->dmode = ISOFS_INVALID_MODE;
+	popt->uid_set = 0;
+	popt->gid_set = 0;
 	popt->gid = 0;
 	popt->uid = 0;
 	popt->iocharset = NULL;
@@ -448,11 +452,13 @@
 			if (match_int(&args[0], &option))
 				return 0;
 			popt->uid = option;
+			popt->uid_set = 1;
 			break;
 		case Opt_gid:
 			if (match_int(&args[0], &option))
 				return 0;
 			popt->gid = option;
+			popt->gid_set = 1;
 			break;
 		case Opt_mode:
 			if (match_int(&args[0], &option))
@@ -810,6 +816,8 @@
 	sbi->s_showassoc = opt.showassoc;
 	sbi->s_uid = opt.uid;
 	sbi->s_gid = opt.gid;
+	sbi->s_uid_set = opt.uid_set;
+	sbi->s_gid_set = opt.gid_set;
 	sbi->s_utf8 = opt.utf8;
 	sbi->s_nocompress = opt.nocompress;
 	sbi->s_overriderockperm = opt.overriderockperm;
@@ -1103,18 +1111,6 @@
 	.bmap = _isofs_bmap
 };
 
-static inline void test_and_set_uid(uid_t *p, uid_t value)
-{
-	if (value)
-		*p = value;
-}
-
-static inline void test_and_set_gid(gid_t *p, gid_t value)
-{
-        if (value)
-                *p = value;
-}
-
 static int isofs_read_level3_size(struct inode *inode)
 {
 	unsigned long bufsize = ISOFS_BUFFER_SIZE(inode);
@@ -1365,8 +1361,10 @@
 	if (!high_sierra) {
 		parse_rock_ridge_inode(de, inode);
 		/* if we want uid/gid set, override the rock ridge setting */
-		test_and_set_uid(&inode->i_uid, sbi->s_uid);
-		test_and_set_gid(&inode->i_gid, sbi->s_gid);
+		if (sbi->s_uid_set)
+			inode->i_uid = sbi->s_uid;
+		if (sbi->s_gid_set)
+			inode->i_gid = sbi->s_gid;
 	}
 	/* Now set final access rights if overriding rock ridge setting */
 	if (S_ISDIR(inode->i_mode) && sbi->s_overriderockperm &&
diff --git a/fs/isofs/isofs.h b/fs/isofs/isofs.h
index 9679fbc..e2fc970 100644
--- a/fs/isofs/isofs.h
+++ b/fs/isofs/isofs.h
@@ -51,6 +51,8 @@
 	unsigned char s_hide;
 	unsigned char s_showassoc;
 	unsigned char s_overriderockperm;
+	unsigned char s_uid_set;
+	unsigned char s_gid_set;
 
 	mode_t s_fmode;
 	mode_t s_dmode;
