isofs: cleanup mount option processing
Jan Kara [Wed, 17 Jun 2009 23:26:27 +0000 (16:26 -0700)]
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>

fs/isofs/dir.c
fs/isofs/inode.c
fs/isofs/isofs.h
fs/isofs/namei.c

index 2f0dc5a..8ba5441 100644 (file)
@@ -195,9 +195,8 @@ static int do_isofs_readdir(struct inode *inode, struct file *filp,
                 * 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' &&
+               if ((sbi->s_hide && (de->flags[-sbi->s_high_sierra] & 1)) ||
+                   (!sbi->s_showassoc &&
                                (de->flags[-sbi->s_high_sierra] & 4))) {
                        filp->f_pos += de_len;
                        continue;
index 0f4f9ca..58a7963 100644 (file)
@@ -141,24 +141,24 @@ static const struct dentry_operations isofs_dentry_ops[] = {
 };
 
 struct iso9660_options{
-       char map;
-       char rock;
+       unsigned int rock:1;
+       unsigned int cruft:1;
+       unsigned int hide:1;
+       unsigned int showassoc:1;
+       unsigned int nocompress:1;
+       unsigned int overriderockperm:1;
+       unsigned int uid_set:1;
+       unsigned int gid_set:1;
+       unsigned int utf8:1;
+       unsigned char map;
        char joliet;
-       char cruft;
-       char hide;
-       char showassoc;
-       char nocompress;
-       char overriderockperm;
        unsigned char check;
        unsigned int blocksize;
        mode_t fmode;
        mode_t dmode;
-       char uid_set;
-       char gid_set;
        gid_t gid;
        uid_t uid;
        char *iocharset;
-       unsigned char utf8;
        /* LVE */
        s32 session;
        s32 sbsector;
@@ -363,11 +363,11 @@ static int parse_options(char *options, struct iso9660_options *popt)
        int option;
 
        popt->map = 'n';
-       popt->rock = 'y';
-       popt->joliet = 'y';
-       popt->cruft = 'n';
-       popt->hide = 'n';
-       popt->showassoc = 'n';
+       popt->rock = 1;
+       popt->joliet = 1;
+       popt->cruft = 0;
+       popt->hide = 0;
+       popt->showassoc = 0;
        popt->check = 'u';              /* unset */
        popt->nocompress = 0;
        popt->blocksize = 1024;
@@ -395,20 +395,20 @@ static int parse_options(char *options, struct iso9660_options *popt)
                token = match_token(p, tokens, args);
                switch (token) {
                case Opt_norock:
-                       popt->rock = 'n';
+                       popt->rock = 0;
                        break;
                case Opt_nojoliet:
-                       popt->joliet = 'n';
+                       popt->joliet = 0;
                        break;
                case Opt_hide:
-                       popt->hide = 'y';
+                       popt->hide = 1;
                        break;
                case Opt_unhide:
                case Opt_showassoc:
-                       popt->showassoc = 'y';
+                       popt->showassoc = 1;
                        break;
                case Opt_cruft:
-                       popt->cruft = 'y';
+                       popt->cruft = 1;
                        break;
                case Opt_utf8:
                        popt->utf8 = 1;
@@ -657,7 +657,7 @@ static int isofs_fill_super(struct super_block *s, void *data, int silent)
                                        goto out_freebh;
 
                                sbi->s_high_sierra = 1;
-                               opt.rock = 'n';
+                               opt.rock = 0;
                                h_pri = (struct hs_primary_descriptor *)vdp;
                                goto root_found;
                        }
@@ -680,7 +680,7 @@ static int isofs_fill_super(struct super_block *s, void *data, int silent)
 
 root_found:
 
-       if (joliet_level && (pri == NULL || opt.rock == 'n')) {
+       if (joliet_level && (pri == NULL || !opt.rock)) {
                /* This is the case of Joliet with the norock mount flag.
                 * A disc with both Joliet and Rock Ridge is handled later
                 */
@@ -809,7 +809,7 @@ root_found:
        s->s_op = &isofs_sops;
        s->s_export_op = &isofs_export_ops;
        sbi->s_mapping = opt.map;
-       sbi->s_rock = (opt.rock == 'y' ? 2 : 0);
+       sbi->s_rock = (opt.rock ? 2 : 0);
        sbi->s_rock_offset = -1; /* initial offset, will guess until SP is found*/
        sbi->s_cruft = opt.cruft;
        sbi->s_hide = opt.hide;
@@ -1315,7 +1315,7 @@ static int isofs_read_inode(struct inode *inode)
         * this CDROM was mounted with the cruft option.
         */
 
-       if (sbi->s_cruft == 'y')
+       if (sbi->s_cruft)
                inode->i_size &= 0x00ffffff;
 
        if (de->interleave[0]) {
index e2fc970..7d33de8 100644 (file)
@@ -35,24 +35,20 @@ struct isofs_sb_info {
        unsigned long s_log_zone_size;
        unsigned long s_max_size;
        
-       unsigned char s_high_sierra; /* A simple flag */
-       unsigned char s_mapping;
        int           s_rock_offset; /* offset of SUSP fields within SU area */
-       unsigned char s_rock;
        unsigned char s_joliet_level;
-       unsigned char s_utf8;
-       unsigned char s_cruft; /* Broken disks with high
-                                 byte of length containing
-                                 junk */
-       unsigned char s_unhide;
-       unsigned char s_nosuid;
-       unsigned char s_nodev;
-       unsigned char s_nocompress;
-       unsigned char s_hide;
-       unsigned char s_showassoc;
-       unsigned char s_overriderockperm;
-       unsigned char s_uid_set;
-       unsigned char s_gid_set;
+       unsigned char s_mapping;
+       unsigned int  s_high_sierra:1;
+       unsigned int  s_rock:2;
+       unsigned int  s_utf8:1;
+       unsigned int  s_cruft:1; /* Broken disks with high byte of length
+                                 * containing junk */
+       unsigned int  s_nocompress:1;
+       unsigned int  s_hide:1;
+       unsigned int  s_showassoc:1;
+       unsigned int  s_overriderockperm:1;
+       unsigned int  s_uid_set:1;
+       unsigned int  s_gid_set:1;
 
        mode_t s_fmode;
        mode_t s_dmode;
index 8299889..eaa8313 100644 (file)
@@ -142,9 +142,9 @@ isofs_find_entry(struct inode *dir, struct dentry *dentry,
                 */
                match = 0;
                if (dlen > 0 &&
-                       (sbi->s_hide =='n' ||
+                       (!sbi->s_hide ||
                                (!(de->flags[-sbi->s_high_sierra] & 1))) &&
-                       (sbi->s_showassoc =='y' ||
+                       (sbi->s_showassoc ||
                                (!(de->flags[-sbi->s_high_sierra] & 4)))) {
                        match = (isofs_cmp(dentry, dpnt, dlen) == 0);
                }