]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] large dev_t - second series (15/15)
authorAlexander Viro <viro@www.linux.org.uk>
Fri, 5 Sep 2003 03:55:21 +0000 (20:55 -0700)
committerLinus Torvalds <torvalds@home.osdl.org>
Fri, 5 Sep 2003 03:55:21 +0000 (20:55 -0700)
old_decode_dev()/old_encode_dev() added where needed in other
filesystems.  Parts in different filesystems are independent, but IMO
it's not worse splitting into a dozen of half-kilobyte patches.

19 files changed:
fs/cramfs/inode.c
fs/efs/inode.c
fs/ext2/inode.c
fs/ext3/inode.c
fs/ext3/super.c
fs/freevxfs/vxfs_inode.c
fs/intermezzo/journal.c
fs/intermezzo/kml_reint.c
fs/intermezzo/vfs.c
fs/jffs/inode-v23.c
fs/jffs2/dir.c
fs/jffs2/fs.c
fs/minix/inode.c
fs/ncpfs/dir.c
fs/ncpfs/inode.c
fs/nfsd/nfsproc.c
fs/reiserfs/inode.c
fs/reiserfs/journal.c
fs/sysv/inode.c

index 1789afd1298d5c879f4f3cb8b88d083f1516843e..8fcd03bec9f798ba479c644fecb6eefacd9f36cc 100644 (file)
@@ -71,7 +71,8 @@ static struct inode *get_cramfs_inode(struct super_block *sb, struct cramfs_inod
                        inode->i_data.a_ops = &cramfs_aops;
                } else {
                        inode->i_size = 0;
-                       init_special_inode(inode, inode->i_mode, cramfs_inode->size);
+                       init_special_inode(inode, inode->i_mode,
+                               old_decode_dev(cramfs_inode->size));
                }
        }
        return inode;
index e0a73e28e0042126df48f9f19f4fa920b59ce232..5901ab61e0b1dfefc220d8b6e210848eed2c9429 100644 (file)
@@ -117,7 +117,7 @@ void efs_read_inode(struct inode *inode) {
         * to see whether odev contains 65535. if this is the case then we
         * should then do device = be32_to_cpu(efs_inode->di_u.di_dev.ndev).
         */
-       device = be16_to_cpu(efs_inode->di_u.di_dev.odev);
+       device = old_decode_dev(be16_to_cpu(efs_inode->di_u.di_dev.odev));
 
        /* get the number of extents for this object */
        in->numextents = be16_to_cpu(efs_inode->di_numextents);
index c9d6cf4a3869600d9302f4ed2fe59a97fd1e6b1e..9247dc703f3185bf0e4e77139f372492b8f07920 100644 (file)
@@ -1127,7 +1127,7 @@ void ext2_read_inode (struct inode * inode)
        } else {
                inode->i_op = &ext2_special_inode_operations;
                init_special_inode(inode, inode->i_mode,
-                                  le32_to_cpu(raw_inode->i_block[0]));
+                          old_decode_dev(le32_to_cpu(raw_inode->i_block[0])));
        }
        brelse (bh);
        ext2_set_inode_flags(inode);
@@ -1216,7 +1216,7 @@ static int ext2_update_inode(struct inode * inode, int do_sync)
        
        raw_inode->i_generation = cpu_to_le32(inode->i_generation);
        if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
-               raw_inode->i_block[0] = cpu_to_le32(inode->i_rdev);
+               raw_inode->i_block[0] = cpu_to_le32(old_encode_dev(inode->i_rdev));
        else for (n = 0; n < EXT2_N_BLOCKS; n++)
                raw_inode->i_block[n] = ei->i_data[n];
        mark_buffer_dirty(bh);
index 24bd9d1fc7de23697d68cc87c805d72ce01cfb83..c4fc83552763f315b7d639caa3e613b58fd03205 100644 (file)
@@ -2566,7 +2566,7 @@ void ext3_read_inode(struct inode * inode)
        } else {
                inode->i_op = &ext3_special_inode_operations;
                init_special_inode(inode, inode->i_mode,
-                                  le32_to_cpu(raw_inode->i_block[0]));
+                          old_decode_dev(le32_to_cpu(raw_inode->i_block[0])));
        }
        brelse (iloc.bh);
        ext3_set_inode_flags(inode);
@@ -2668,7 +2668,7 @@ static int ext3_do_update_inode(handle_t *handle,
        raw_inode->i_generation = cpu_to_le32(inode->i_generation);
        if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
                raw_inode->i_block[0] =
-                       cpu_to_le32(inode->i_rdev);
+                       cpu_to_le32(old_encode_dev(inode->i_rdev));
        else for (block = 0; block < EXT3_N_BLOCKS; block++)
                raw_inode->i_block[block] = ei->i_data[block];
 
index 4ac414b82e68e71b209b5d161302f999392a876a..e5148cb001d830d50e9bd12ac378afef6ca987ee 100644 (file)
@@ -1603,7 +1603,7 @@ static int ext3_load_journal(struct super_block * sb,
 {
        journal_t *journal;
        int journal_inum = le32_to_cpu(es->s_journal_inum);
-       dev_t journal_dev = le32_to_cpu(es->s_journal_dev);
+       dev_t journal_dev = old_decode_dev(le32_to_cpu(es->s_journal_dev));
        int err = 0;
        int really_read_only;
 
index 06d7fe84a4215d71b9ed0207f46c622ae2ecbb0b..bbaeef8b63d2abe076ba880da4659ffd29dee207 100644 (file)
@@ -333,7 +333,7 @@ vxfs_read_inode(struct inode *ip)
                } else
                        ip->i_op = &vxfs_immed_symlink_iops;
        } else
-               init_special_inode(ip, ip->i_mode, vip->vii_rdev);
+               init_special_inode(ip, ip->i_mode, old_decode_dev(vip->vii_rdev));
 
        return;
 }
index 0b62b13648552ff7e471038f8bbc3d10911a88f8..74396076f10dd7b9c7c2da6a96bdd3145e61cdd3 100644 (file)
@@ -391,13 +391,11 @@ static inline char *log_version(char *buf, struct presto_version *pv)
 static inline char *log_rollback(char *buf, struct izo_rollback_data *rb)
 {
         struct izo_rollback_data rollback;
-
-        memcpy(&rollback, rb, sizeof(rollback));
         
-        rollback.rb_mode = HTON__u32(rollback.rb_mode);
-        rollback.rb_rdev = HTON__u32(rollback.rb_rdev);
-        rollback.rb_uid = HTON__u64(rollback.rb_uid);
-        rollback.rb_gid = HTON__u64(rollback.rb_gid);
+        rollback.rb_mode = HTON__u32(rb->rb_mode);
+        rollback.rb_rdev = HTON__u32(rb->rb_rdev);
+        rollback.rb_uid = HTON__u64(rb->rb_uid);
+        rollback.rb_gid = HTON__u64(rb->rb_gid);
 
         return logit(buf, &rollback, sizeof(rollback));
 }
index f05915ee0dc03cf6e579e78018942932e1006a6b..f244abb962f9ec0bed9031d7e9a3863ca943f091 100644 (file)
@@ -236,7 +236,8 @@ static int reint_mknod(struct kml_rec *rec, struct file *dir,
                        struct lento_vfs_context *info)
 {
         struct run_ctxt saved_ctxt;
-        int     error, dev;
+        int     error;
+       dev_t dev;
 
         ENTRY;
 
@@ -245,7 +246,7 @@ static int reint_mknod(struct kml_rec *rec, struct file *dir,
         info->updated_time.tv_nsec = rec->new_objectv->pv_ctime_nsec;
         kmlreint_pre_secure(rec, dir, &saved_ctxt);
 
-        dev = rec->rdev ?: MKDEV(rec->major, rec->minor);
+        dev = rec->rdev ? old_decode_dev(rec->rdev) : MKDEV(rec->major, rec->minor);
 
         error = lento_mknod(rec->path, rec->mode, dev, info);
         pop_ctxt(&saved_ctxt); 
index 469a463c8752d7e9010548475770b546131f7f9d..40b08d332d258d98aaf66f2e036eba25d71fe9a4 100644 (file)
@@ -290,7 +290,7 @@ int presto_settime(struct presto_file_set *fset,
 void izo_get_rollback_data(struct inode *inode, struct izo_rollback_data *rb)
 {
         rb->rb_mode = (__u32)inode->i_mode;
-        rb->rb_rdev = (__u32)inode->i_rdev;
+        rb->rb_rdev = (__u32)old_encode_dev(inode->i_rdev);
         rb->rb_uid  = (__u64)inode->i_uid;
         rb->rb_gid  = (__u64)inode->i_gid;
 }
index cad1a1f36e15b58efcf8b0fab6b6aa56a7b348ce..915f3a57af4607cefc34cde500f0c0197d1e5af0 100644 (file)
@@ -1079,11 +1079,9 @@ jffs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t rdev)
        struct jffs_control *c;
        struct inode *inode;
        int result = 0;
-       u16 data;
+       u16 data = old_encode_dev(rdev);
        int err;
 
-       data = (MAJOR(rdev) << 8) | MINOR(rdev);
-
        D1(printk("***jffs_mknod()\n"));
 
        if (!old_valid_dev(rdev))
@@ -1738,7 +1736,7 @@ jffs_read_inode(struct inode *inode)
                u16 val;
                jffs_read_data(f, (char *)val, 0, 2);
                init_special_inode(inode, inode->i_mode,
-                       MKDEV((val >> 8) & 255, val & 255));
+                       old_decode_dev(val));
        }
 
        D3(printk (KERN_NOTICE "read_inode(): up biglock\n"));
index 068084e7893e99ca8995a4403a8d7cf016efca5d..93742552a9e930b774a6a797595d73f2b7701423 100644 (file)
@@ -604,7 +604,7 @@ static int jffs2_mknod (struct inode *dir_i, struct dentry *dentry, int mode, mk
        c = JFFS2_SB_INFO(dir_i->i_sb);
        
        if (S_ISBLK(mode) || S_ISCHR(mode)) {
-               dev = cpu_to_je16((MAJOR(rdev) << 8) | MINOR(rdev));
+               dev = cpu_to_je16(old_encode_dev(rdev));
                devlen = sizeof(dev);
        }
        
index 88464374eaf166d3f1b7c7fe37b0d5246a148ff7..531d79dea640b730774de91bc2b1eed256bb993d 100644 (file)
@@ -147,7 +147,8 @@ void jffs2_read_inode (struct inode *inode)
        case S_IFSOCK:
        case S_IFIFO:
                inode->i_op = &jffs2_file_inode_operations;
-               init_special_inode(inode, inode->i_mode, MKDEV(je16_to_cpu(rdev)>>8, je16_to_cpu(rdev)&0xff));
+               init_special_inode(inode, inode->i_mode,
+                       old_decode_dev(je16_to_cpu(rdev)));
                break;
 
        default:
index 1c98d11037293f8a08cad9fdc889773763107c8a..946f5812efc1dbfd78cdfac933f483f381c7acd1 100644 (file)
@@ -392,7 +392,7 @@ static void V1_minix_read_inode(struct inode * inode)
        inode->i_blocks = inode->i_blksize = 0;
        for (i = 0; i < 9; i++)
                minix_inode->u.i1_data[i] = raw_inode->i_zone[i];
-       minix_set_inode(inode, raw_inode->i_zone[0]);
+       minix_set_inode(inode, old_decode_dev(raw_inode->i_zone[0]));
        brelse(bh);
 }
 
@@ -425,7 +425,7 @@ static void V2_minix_read_inode(struct inode * inode)
        inode->i_blocks = inode->i_blksize = 0;
        for (i = 0; i < 10; i++)
                minix_inode->u.i2_data[i] = raw_inode->i_zone[i];
-       minix_set_inode(inode, raw_inode->i_zone[0]);
+       minix_set_inode(inode, old_decode_dev(raw_inode->i_zone[0]));
        brelse(bh);
 }
 
@@ -460,7 +460,7 @@ static struct buffer_head * V1_minix_update_inode(struct inode * inode)
        raw_inode->i_size = inode->i_size;
        raw_inode->i_time = inode->i_mtime.tv_sec;
        if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
-               raw_inode->i_zone[0] = inode->i_rdev;
+               raw_inode->i_zone[0] = old_encode_dev(inode->i_rdev);
        else for (i = 0; i < 9; i++)
                raw_inode->i_zone[i] = minix_inode->u.i1_data[i];
        mark_buffer_dirty(bh);
@@ -489,7 +489,7 @@ static struct buffer_head * V2_minix_update_inode(struct inode * inode)
        raw_inode->i_atime = inode->i_atime.tv_sec;
        raw_inode->i_ctime = inode->i_ctime.tv_sec;
        if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
-               raw_inode->i_zone[0] = inode->i_rdev;
+               raw_inode->i_zone[0] = old_encode_dev(inode->i_rdev);
        else for (i = 0; i < 10; i++)
                raw_inode->i_zone[i] = minix_inode->u.i2_data[i];
        mark_buffer_dirty(bh);
index ce75e852e7578c56bc1b7cdbbb5cfd094e94f217..0e84d722cf0b76a4ed7ab52fed2fba3bc67da053 100644 (file)
@@ -929,10 +929,10 @@ int ncp_create_new(struct inode *dir, struct dentry *dentry, int mode,
        finfo.access = opmode;
        if (ncp_is_nfs_extras(server, finfo.volume)) {
                finfo.i.nfs.mode = mode;
-               finfo.i.nfs.rdev = rdev;
+               finfo.i.nfs.rdev = old_encode_dev(rdev);
                if (ncp_modify_nfs_info(server, finfo.volume,
                                        finfo.i.dirEntNum,
-                                       mode, rdev) != 0)
+                                       mode, old_encode_dev(rdev)) != 0)
                        goto out;
        }
 
index d0bd5276de564a4f04eaf2ff474ae7e1045a3d67..f3fe78dbfb66a075c132089f2f4a22cb7bea18da 100644 (file)
@@ -261,7 +261,8 @@ ncp_iget(struct super_block *sb, struct ncp_entry_info *info)
                        inode->i_fop = &ncp_dir_operations;
 #ifdef CONFIG_NCPFS_NFS_NS
                } else if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode) || S_ISFIFO(inode->i_mode) || S_ISSOCK(inode->i_mode)) {
-                       init_special_inode(inode, inode->i_mode, info->i.nfs.rdev);
+                       init_special_inode(inode, inode->i_mode,
+                               old_decode_dev(info->i.nfs.rdev));
 #endif
 #if defined(CONFIG_NCPFS_EXTRAS) || defined(CONFIG_NCPFS_NFS_NS)
                } else if (S_ISLNK(inode->i_mode)) {
index d0dda80f9c4771f35ff4cbd4ae10f54d1da344a1..c64ebaf8818ed1371bcbd5c22a682a11cd79800a 100644 (file)
@@ -279,7 +279,8 @@ nfsd_proc_create(struct svc_rqst *rqstp, struct nfsd_createargs *argp,
                int     is_borc = 0;
                u32     size = attr->ia_size;
 
-               rdev = (dev_t) size;
+               /* may need to change when we widen dev_t */
+               rdev = old_decode_dev(size);
                if (type != S_IFBLK && type != S_IFCHR) {
                        rdev = 0;
                } else if (type == S_IFCHR && !(attr->ia_valid & ATTR_SIZE)) {
index d18538e49f2124f6984aa7171dd83ff918ae2ee3..e33ddbab755254545d8dbfb9f59fdd01c0484127 100644 (file)
@@ -1003,7 +1003,7 @@ static void init_inode (struct inode * inode, struct path * path)
        inode->i_mapping->a_ops = &reiserfs_address_space_operations;
     } else {
        inode->i_blocks = 0;
-       init_special_inode(inode, inode->i_mode, rdev) ;
+       init_special_inode(inode, inode->i_mode, old_decode_dev(rdev));
     }
 }
 
@@ -1024,7 +1024,7 @@ static void inode2sd (void * sd, struct inode * inode)
     set_sd_v2_ctime(sd_v2, inode->i_ctime.tv_sec );
     set_sd_v2_blocks(sd_v2, inode->i_blocks );
     if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
-       set_sd_v2_rdev(sd_v2, inode->i_rdev);
+       set_sd_v2_rdev(sd_v2, old_encode_dev(inode->i_rdev));
     else
        set_sd_v2_generation(sd_v2, inode->i_generation);
     flags = REISERFS_I(inode)->i_attrs;
@@ -1048,7 +1048,7 @@ static void inode2sd_v1 (void * sd, struct inode * inode)
     set_sd_v1_mtime(sd_v1, inode->i_mtime.tv_sec );
 
     if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
-        set_sd_v1_rdev(sd_v1, inode->i_rdev);
+        set_sd_v1_rdev(sd_v1, old_encode_dev(inode->i_rdev));
     else
         set_sd_v1_blocks(sd_v1, inode->i_blocks );
 
index 55f12082022bd3cb7010d26b05edcc134f3225a4..803d414747e3afabfad047fb0466171f70ab6cb6 100644 (file)
@@ -1906,7 +1906,7 @@ static int journal_init_dev( struct super_block *super,
        journal -> j_dev_bd = NULL;
        journal -> j_dev_file = NULL;
        jdev = SB_ONDISK_JOURNAL_DEVICE( super ) ?
-               SB_ONDISK_JOURNAL_DEVICE( super ) : super->s_dev;       
+               old_decode_dev(SB_ONDISK_JOURNAL_DEVICE(super)) : super->s_dev; 
 
        if (bdev_read_only(super->s_bdev))
            blkdev_mode = FMODE_READ;
@@ -1939,7 +1939,6 @@ static int journal_init_dev( struct super_block *super,
                        result = -ENOMEM;
                } else  {
                        /* ok */
-                       jdev = jdev_inode -> i_bdev -> bd_dev;
                        set_blocksize(journal->j_dev_bd, super->s_blocksize);
                }
        } else {
index 60fca21285670579a660d57b4f579b519147f853..09c131fbb36f9368ff64612e877a53aa24925cd1 100644 (file)
@@ -164,10 +164,8 @@ static void sysv_read_inode(struct inode *inode)
        struct buffer_head * bh;
        struct sysv_inode * raw_inode;
        struct sysv_inode_info * si;
-       unsigned int block, ino;
-       dev_t rdev = 0;
+       unsigned int block, ino = inode->i_ino;
 
-       ino = inode->i_ino;
        if (!ino || ino > sbi->s_ninodes) {
                printk("Bad inode number on dev %s: %d is out of range\n",
                       inode->i_sb->s_id, ino);
@@ -198,10 +196,12 @@ static void sysv_read_inode(struct inode *inode)
                read3byte(sbi, &raw_inode->i_data[3*block],
                                (u8 *)&si->i_data[block]);
        brelse(bh);
-       if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
-               rdev = (u16)fs32_to_cpu(sbi, si->i_data[0]);
        si->i_dir_start_lookup = 0;
-       sysv_set_inode(inode, rdev);
+       if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
+               sysv_set_inode(inode,
+                              old_decode_dev(fs32_to_cpu(sbi, si->i_data[0])));
+       else
+               sysv_set_inode(inode, 0);
        return;
 
 bad_inode:
@@ -241,7 +241,7 @@ static struct buffer_head * sysv_update_inode(struct inode * inode)
 
        si = SYSV_I(inode);
        if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
-               si->i_data[0] = cpu_to_fs32(sbi, inode->i_rdev);
+               si->i_data[0] = cpu_to_fs32(sbi, old_encode_dev(inode->i_rdev));
        for (block = 0; block < 10+1+1+1; block++)
                write3byte(sbi, (u8 *)&si->i_data[block],
                        &raw_inode->i_data[3*block]);