patch-2.0.31 linux/fs/isofs/namei.c

Next file: linux/fs/isofs/rock.c
Previous file: linux/fs/isofs/inode.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.0.30/linux/fs/isofs/namei.c linux/fs/isofs/namei.c
@@ -242,9 +242,12 @@
 	if (!ino) {
 		char *lcname;
 
-		/* If mounted with check=relaxed (and most likely norock),
-		   then first convert this name to lower case. */
-		if (dir->i_sb->u.isofs_sb.s_name_check == 'r'
+		/* First try the original name. If that doesn't work and the fs
+		 * was mounted with check=relaxed, convert the name to lower
+		 * case and try again.
+		 */
+		if (!(bh = isofs_find_entry(dir,name,len, &ino, &ino_back))
+		    && dir->i_sb->u.isofs_sb.s_name_check == 'r'
 		    && (lcname = kmalloc(len, GFP_KERNEL)) != NULL) {
 			int i;
 			char c;
@@ -256,8 +259,7 @@
 			}
 			bh = isofs_find_entry(dir,lcname,len, &ino, &ino_back);
 			kfree(lcname);
-		} else
-			bh = isofs_find_entry(dir,name,len, &ino, &ino_back);
+		}
 
 		if (!bh) {
 			iput(dir);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov