aboutsummaryrefslogtreecommitdiffstats
path: root/fs/isofs
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2009-06-17 19:26:27 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-18 16:03:45 -0400
commit5404ac8e4418ab3d254950ee4f9bcafc1da20b4a (patch)
tree00ce9ff14b27eb4e8cc1a51970b7da244b102ab7 /fs/isofs
parent5c4a656b7e51503c2b5e7e7310ec326ee38a8389 (diff)
isofs: cleanup mount option processing
Remove unused variables from isofs_sb_info (used to be some mount options), unify variables for option to use 0/1 (some options used 'y'/'n'), use bit fields for option flags in superblock. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/isofs')
-rw-r--r--fs/isofs/dir.c5
-rw-r--r--fs/isofs/inode.c48
-rw-r--r--fs/isofs/isofs.h28
-rw-r--r--fs/isofs/namei.c4
4 files changed, 40 insertions, 45 deletions
diff --git a/fs/isofs/dir.c b/fs/isofs/dir.c
index 2f0dc5a14633..8ba5441063be 100644
--- a/fs/isofs/dir.c
+++ b/fs/isofs/dir.c
@@ -195,9 +195,8 @@ static int do_isofs_readdir(struct inode *inode, struct file *filp,
195 * Do not report hidden files if so instructed, or associated 195 * Do not report hidden files if so instructed, or associated
196 * files unless instructed to do so 196 * files unless instructed to do so
197 */ 197 */
198 if ((sbi->s_hide == 'y' && 198 if ((sbi->s_hide && (de->flags[-sbi->s_high_sierra] & 1)) ||
199 (de->flags[-sbi->s_high_sierra] & 1)) || 199 (!sbi->s_showassoc &&
200 (sbi->s_showassoc =='n' &&
201 (de->flags[-sbi->s_high_sierra] & 4))) { 200 (de->flags[-sbi->s_high_sierra] & 4))) {
202 filp->f_pos += de_len; 201 filp->f_pos += de_len;
203 continue; 202 continue;
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c
index 0f4f9ca77f8e..58a7963e168a 100644
--- a/fs/isofs/inode.c
+++ b/fs/isofs/inode.c
@@ -141,24 +141,24 @@ static const struct dentry_operations isofs_dentry_ops[] = {
141}; 141};
142 142
143struct iso9660_options{ 143struct iso9660_options{
144 char map; 144 unsigned int rock:1;
145 char rock; 145 unsigned int cruft:1;
146 unsigned int hide:1;
147 unsigned int showassoc:1;
148 unsigned int nocompress:1;
149 unsigned int overriderockperm:1;
150 unsigned int uid_set:1;
151 unsigned int gid_set:1;
152 unsigned int utf8:1;
153 unsigned char map;
146 char joliet; 154 char joliet;
147 char cruft;
148 char hide;
149 char showassoc;
150 char nocompress;
151 char overriderockperm;
152 unsigned char check; 155 unsigned char check;
153 unsigned int blocksize; 156 unsigned int blocksize;
154 mode_t fmode; 157 mode_t fmode;
155 mode_t dmode; 158 mode_t dmode;
156 char uid_set;
157 char gid_set;
158 gid_t gid; 159 gid_t gid;
159 uid_t uid; 160 uid_t uid;
160 char *iocharset; 161 char *iocharset;
161 unsigned char utf8;
162 /* LVE */ 162 /* LVE */
163 s32 session; 163 s32 session;
164 s32 sbsector; 164 s32 sbsector;
@@ -363,11 +363,11 @@ static int parse_options(char *options, struct iso9660_options *popt)
363 int option; 363 int option;
364 364
365 popt->map = 'n'; 365 popt->map = 'n';
366 popt->rock = 'y'; 366 popt->rock = 1;
367 popt->joliet = 'y'; 367 popt->joliet = 1;
368 popt->cruft = 'n'; 368 popt->cruft = 0;
369 popt->hide = 'n'; 369 popt->hide = 0;
370 popt->showassoc = 'n'; 370 popt->showassoc = 0;
371 popt->check = 'u'; /* unset */ 371 popt->check = 'u'; /* unset */
372 popt->nocompress = 0; 372 popt->nocompress = 0;
373 popt->blocksize = 1024; 373 popt->blocksize = 1024;
@@ -395,20 +395,20 @@ static int parse_options(char *options, struct iso9660_options *popt)
395 token = match_token(p, tokens, args); 395 token = match_token(p, tokens, args);
396 switch (token) { 396 switch (token) {
397 case Opt_norock: 397 case Opt_norock:
398 popt->rock = 'n'; 398 popt->rock = 0;
399 break; 399 break;
400 case Opt_nojoliet: 400 case Opt_nojoliet:
401 popt->joliet = 'n'; 401 popt->joliet = 0;
402 break; 402 break;
403 case Opt_hide: 403 case Opt_hide:
404 popt->hide = 'y'; 404 popt->hide = 1;
405 break; 405 break;
406 case Opt_unhide: 406 case Opt_unhide:
407 case Opt_showassoc: 407 case Opt_showassoc:
408 popt->showassoc = 'y'; 408 popt->showassoc = 1;
409 break; 409 break;
410 case Opt_cruft: 410 case Opt_cruft:
411 popt->cruft = 'y'; 411 popt->cruft = 1;
412 break; 412 break;
413 case Opt_utf8: 413 case Opt_utf8:
414 popt->utf8 = 1; 414 popt->utf8 = 1;
@@ -657,7 +657,7 @@ static int isofs_fill_super(struct super_block *s, void *data, int silent)
657 goto out_freebh; 657 goto out_freebh;
658 658
659 sbi->s_high_sierra = 1; 659 sbi->s_high_sierra = 1;
660 opt.rock = 'n'; 660 opt.rock = 0;
661 h_pri = (struct hs_primary_descriptor *)vdp; 661 h_pri = (struct hs_primary_descriptor *)vdp;
662 goto root_found; 662 goto root_found;
663 } 663 }
@@ -680,7 +680,7 @@ static int isofs_fill_super(struct super_block *s, void *data, int silent)
680 680
681root_found: 681root_found:
682 682
683 if (joliet_level && (pri == NULL || opt.rock == 'n')) { 683 if (joliet_level && (pri == NULL || !opt.rock)) {
684 /* This is the case of Joliet with the norock mount flag. 684 /* This is the case of Joliet with the norock mount flag.
685 * A disc with both Joliet and Rock Ridge is handled later 685 * A disc with both Joliet and Rock Ridge is handled later
686 */ 686 */
@@ -809,7 +809,7 @@ root_found:
809 s->s_op = &isofs_sops; 809 s->s_op = &isofs_sops;
810 s->s_export_op = &isofs_export_ops; 810 s->s_export_op = &isofs_export_ops;
811 sbi->s_mapping = opt.map; 811 sbi->s_mapping = opt.map;
812 sbi->s_rock = (opt.rock == 'y' ? 2 : 0); 812 sbi->s_rock = (opt.rock ? 2 : 0);
813 sbi->s_rock_offset = -1; /* initial offset, will guess until SP is found*/ 813 sbi->s_rock_offset = -1; /* initial offset, will guess until SP is found*/
814 sbi->s_cruft = opt.cruft; 814 sbi->s_cruft = opt.cruft;
815 sbi->s_hide = opt.hide; 815 sbi->s_hide = opt.hide;
@@ -1315,7 +1315,7 @@ static int isofs_read_inode(struct inode *inode)
1315 * this CDROM was mounted with the cruft option. 1315 * this CDROM was mounted with the cruft option.
1316 */ 1316 */
1317 1317
1318 if (sbi->s_cruft == 'y') 1318 if (sbi->s_cruft)
1319 inode->i_size &= 0x00ffffff; 1319 inode->i_size &= 0x00ffffff;
1320 1320
1321 if (de->interleave[0]) { 1321 if (de->interleave[0]) {
diff --git a/fs/isofs/isofs.h b/fs/isofs/isofs.h
index e2fc9704f14f..7d33de84f52a 100644
--- a/fs/isofs/isofs.h
+++ b/fs/isofs/isofs.h
@@ -35,24 +35,20 @@ struct isofs_sb_info {
35 unsigned long s_log_zone_size; 35 unsigned long s_log_zone_size;
36 unsigned long s_max_size; 36 unsigned long s_max_size;
37 37
38 unsigned char s_high_sierra; /* A simple flag */
39 unsigned char s_mapping;
40 int s_rock_offset; /* offset of SUSP fields within SU area */ 38 int s_rock_offset; /* offset of SUSP fields within SU area */
41 unsigned char s_rock;
42 unsigned char s_joliet_level; 39 unsigned char s_joliet_level;
43 unsigned char s_utf8; 40 unsigned char s_mapping;
44 unsigned char s_cruft; /* Broken disks with high 41 unsigned int s_high_sierra:1;
45 byte of length containing 42 unsigned int s_rock:2;
46 junk */ 43 unsigned int s_utf8:1;
47 unsigned char s_unhide; 44 unsigned int s_cruft:1; /* Broken disks with high byte of length
48 unsigned char s_nosuid; 45 * containing junk */
49 unsigned char s_nodev; 46 unsigned int s_nocompress:1;
50 unsigned char s_nocompress; 47 unsigned int s_hide:1;
51 unsigned char s_hide; 48 unsigned int s_showassoc:1;
52 unsigned char s_showassoc; 49 unsigned int s_overriderockperm:1;
53 unsigned char s_overriderockperm; 50 unsigned int s_uid_set:1;
54 unsigned char s_uid_set; 51 unsigned int s_gid_set:1;
55 unsigned char s_gid_set;
56 52
57 mode_t s_fmode; 53 mode_t s_fmode;
58 mode_t s_dmode; 54 mode_t s_dmode;
diff --git a/fs/isofs/namei.c b/fs/isofs/namei.c
index 8299889a835e..eaa831311c9c 100644
--- a/fs/isofs/namei.c
+++ b/fs/isofs/namei.c
@@ -142,9 +142,9 @@ isofs_find_entry(struct inode *dir, struct dentry *dentry,
142 */ 142 */
143 match = 0; 143 match = 0;
144 if (dlen > 0 && 144 if (dlen > 0 &&
145 (sbi->s_hide =='n' || 145 (!sbi->s_hide ||
146 (!(de->flags[-sbi->s_high_sierra] & 1))) && 146 (!(de->flags[-sbi->s_high_sierra] & 1))) &&
147 (sbi->s_showassoc =='y' || 147 (sbi->s_showassoc ||
148 (!(de->flags[-sbi->s_high_sierra] & 4)))) { 148 (!(de->flags[-sbi->s_high_sierra] & 4)))) {
149 match = (isofs_cmp(dentry, dpnt, dlen) == 0); 149 match = (isofs_cmp(dentry, dpnt, dlen) == 0);
150 } 150 }