--- linux-2.6.12-rc5/Documentation/filesystems/isofs.txt 2005-03-02 01:38:13.000000000 -0600 +++ jpw/Documentation/filesystems/isofs.txt 2005-06-02 22:26:23.000000000 -0500 @@ -26,7 +26,11 @@ mode=xxx Sets the permissions on files to xxx nojoliet Ignore Joliet extensions if they are present. norock Ignore Rock Ridge extensions if they are present. - unhide Show hidden files. + hide Completely strip hidden files from the file system. + showassoc Show files marked with the 'associated' bit + unhide Deprecated; showing hidden files is now default; + If given, it is a synonym for 'showassoc' which will + recreate previous unhide behavior session=x Select number of session on multisession CD sbsector=xxx Session begins from sector xxx --- linux-2.6.12-rc5/fs/isofs/dir.c 2005-05-31 18:57:37.000000000 -0500 +++ jpw/fs/isofs/dir.c 2005-06-02 22:30:08.000000000 -0500 @@ -193,12 +193,12 @@ /* Handle everything else. Do name translation if there is no Rock Ridge NM field. */ - if (sbi->s_unhide == 'n') { - /* Do not report hidden or associated files */ - if (de->flags[-sbi->s_high_sierra] & 5) { - filp->f_pos += de_len; - continue; - } + + /* Do not report hidden files if so instructed, or associated files unless instructed to do so */ + if ( ( sbi->s_hide =='y' && (de->flags[-sbi->s_high_sierra] & 1) ) || + ( sbi->s_showassoc =='n' && (de->flags[-sbi->s_high_sierra] & 4) ) ) { + filp->f_pos += de_len; + continue; } map = 1; --- linux-2.6.12-rc5/fs/isofs/inode.c 2005-05-31 18:57:37.000000000 -0500 +++ jpw/fs/isofs/inode.c 2005-06-02 22:33:35.000000000 -0500 @@ -153,7 +153,8 @@ char rock; char joliet; char cruft; - char unhide; + char hide; + char showassoc; char nocompress; unsigned char check; unsigned int blocksize; @@ -318,13 +319,15 @@ Opt_block, Opt_check_r, Opt_check_s, Opt_cruft, Opt_gid, Opt_ignore, Opt_iocharset, Opt_map_a, Opt_map_n, Opt_map_o, Opt_mode, Opt_nojoliet, Opt_norock, Opt_sb, Opt_session, Opt_uid, Opt_unhide, Opt_utf8, Opt_err, - Opt_nocompress, + Opt_nocompress, Opt_hide, Opt_showassoc, }; static match_table_t tokens = { {Opt_norock, "norock"}, {Opt_nojoliet, "nojoliet"}, {Opt_unhide, "unhide"}, + {Opt_hide, "hide"}, + {Opt_showassoc, "showassoc"}, {Opt_cruft, "cruft"}, {Opt_utf8, "utf8"}, {Opt_iocharset, "iocharset=%s"}, @@ -365,7 +368,8 @@ popt->rock = 'y'; popt->joliet = 'y'; popt->cruft = 'n'; - popt->unhide = 'n'; + popt->hide = 'n'; + popt->showassoc = 'n'; popt->check = 'u'; /* unset */ popt->nocompress = 0; popt->blocksize = 1024; @@ -398,8 +402,12 @@ case Opt_nojoliet: popt->joliet = 'n'; break; + case Opt_hide: + popt->hide = 'y'; + break; case Opt_unhide: - popt->unhide = 'y'; + case Opt_showassoc: + popt->showassoc = 'y'; break; case Opt_cruft: popt->cruft = 'y'; @@ -792,7 +800,8 @@ sbi->s_rock = (opt.rock == 'y' ? 2 : 0); sbi->s_rock_offset = -1; /* initial offset, will guess until SP is found*/ sbi->s_cruft = opt.cruft; - sbi->s_unhide = opt.unhide; + sbi->s_hide = opt.hide; + sbi->s_showassoc = opt.showassoc; sbi->s_uid = opt.uid; sbi->s_gid = opt.gid; sbi->s_utf8 = opt.utf8; --- linux-2.6.12-rc5/fs/isofs/namei.c 2005-05-31 18:57:37.000000000 -0500 +++ jpw/fs/isofs/namei.c 2005-06-02 22:28:38.000000000 -0500 @@ -131,12 +131,12 @@ } /* - * Skip hidden or associated files unless unhide is set + * Skip hidden or associated files unless hide or showassoc, respectively, is set */ match = 0; if (dlen > 0 && - (!(de->flags[-sbi->s_high_sierra] & 5) - || sbi->s_unhide == 'y')) + ( sbi->s_hide =='n' || (!(de->flags[-sbi->s_high_sierra] & 1)) ) && + ( sbi->s_showassoc =='y' || (!(de->flags[-sbi->s_high_sierra] & 4)) ) ) { match = (isofs_cmp(dentry,dpnt,dlen) == 0); }