Annotation of dmsdos/patches/linux-2.3.30-pre6-dmsdos.patch-1, revision 1.1

1.1     ! root        1: diff -u -r linux-2.3.30-6-orig/fs/fat/cvf.c linux-2.3.30-6-new1/fs/fat/cvf.c
        !             2: --- linux-2.3.30-6-orig/fs/fat/cvf.c   Mon Aug  9 18:43:49 1999
        !             3: +++ linux-2.3.30-6-new1/fs/fat/cvf.c   Wed Nov  3 00:28:53 1999
        !             4: @@ -53,49 +53,55 @@
        !             5:        loff_t *ppos);
        !             6:  
        !             7:  struct cvf_format default_cvf = {
        !             8: -      0,      /* version - who cares? */      
        !             9: -      "plain",
        !            10: -      0,      /* flags - who cares? */
        !            11: -      NULL,
        !            12: -      NULL,
        !            13: -      NULL,
        !            14: -      default_fat_bread,
        !            15: -      default_fat_getblk,
        !            16: -      default_fat_brelse,
        !            17: -      default_fat_mark_buffer_dirty,
        !            18: -      default_fat_set_uptodate,
        !            19: -      default_fat_is_uptodate,
        !            20: -      default_fat_ll_rw_block,
        !            21: -      default_fat_access,
        !            22: -      NULL,
        !            23: -      default_fat_bmap,
        !            24: -      generic_file_read,
        !            25: -      default_fat_file_write,
        !            26: -      NULL,
        !            27: -      NULL
        !            28: +      0,              /* cvf unique version number - 0 for fat internal CVF */
        !            29: +      "plain",        /* cvf version name */
        !            30: +      0,              /* flags - capabilities, ex. CVF_USE_READPAGE */
        !            31: +      NULL,                   /* detect_cvf */
        !            32: +      NULL,                   /* mount_cvf */
        !            33: +      NULL,                   /* unmount_cvf */
        !            34: +      default_fat_bread,      /* cvf_bread */
        !            35: +      default_fat_getblk,     /* cvf_getblk */
        !            36: +      default_fat_brelse,     /* cvf_brelse */
        !            37: +      default_fat_mark_buffer_dirty, /* cvf_mark_buffer_dirty */
        !            38: +      default_fat_set_uptodate, /* cvf_set_uptodate */
        !            39: +      default_fat_is_uptodate,  /* cvf_is_uptodate */
        !            40: +      default_fat_ll_rw_block,  /* cvf_ll_rw_block */
        !            41: +      default_fat_access,     /* fat_access */
        !            42: +      NULL,                   /* cvf_statfs */
        !            43: +      default_fat_bmap,       /* cvf_bmap */
        !            44: +      generic_file_read,      /* cvf_file_read */
        !            45: +      default_fat_file_write, /* cvf_file_write */
        !            46: +      NULL,                   /* cvf_mmap */
        !            47: +      block_read_full_page,   /* cvf_readpage */
        !            48: +      NULL,                   /* cvf_writepage */
        !            49: +      NULL,                   /* cvf_dir_ioctl */
        !            50: +      NULL                    /* zero_out_cluster */
        !            51:  };
        !            52:  
        !            53:  struct cvf_format bigblock_cvf = {
        !            54: -      0,      /* version - who cares? */      
        !            55: -      "big_blocks",
        !            56: -      0,      /* flags - who cares? */
        !            57: -      NULL,
        !            58: -      NULL,
        !            59: -      NULL,
        !            60: -      bigblock_fat_bread,
        !            61: -      bigblock_fat_bread,
        !            62: -      bigblock_fat_brelse,
        !            63: -      bigblock_fat_mark_buffer_dirty,
        !            64: -      bigblock_fat_set_uptodate,
        !            65: -      bigblock_fat_is_uptodate,
        !            66: -      bigblock_fat_ll_rw_block,
        !            67: -      default_fat_access,
        !            68: -      NULL,
        !            69: -      default_fat_bmap,
        !            70: -      NULL,
        !            71: -      default_fat_file_write,
        !            72: -      NULL,
        !            73: -      NULL
        !            74: +      0,              /* cvf unique version number - 0 for fat internal CVF */
        !            75: +      "big_blocks",   /* cvf version name */
        !            76: +      0,              /* flags - capabilities, ex. CVF_USE_READPAGE */
        !            77: +      NULL,                   /* detect_cvf */
        !            78: +      NULL,                   /* mount_cvf */
        !            79: +      NULL,                   /* unmount_cvf */
        !            80: +      bigblock_fat_bread,     /* cvf_bread */
        !            81: +      bigblock_fat_bread,     /* cvf_getblk */
        !            82: +      bigblock_fat_brelse,    /* cvf_brelse */
        !            83: +      bigblock_fat_mark_buffer_dirty, /* cvf_mark_buffer_dirty */
        !            84: +      bigblock_fat_set_uptodate, /* cvf_set_uptodate */
        !            85: +      bigblock_fat_is_uptodate,  /* cvf_is_uptodate */
        !            86: +      bigblock_fat_ll_rw_block,  /* cvf_ll_rw_block */
        !            87: +      default_fat_access,     /* fat_access */
        !            88: +      NULL,                   /* cvf_statfs */
        !            89: +      default_fat_bmap,       /* cvf_bmap */
        !            90: +      NULL,   /* ?????? */    /* cvf_file_read */
        !            91: +      default_fat_file_write, /* cvf_file_write */
        !            92: +      NULL,                   /* cvf_mmap */
        !            93: +      block_read_full_page,   /* cvf_readpage */
        !            94: +      NULL,                   /* cvf_writepage */
        !            95: +      NULL,                   /* cvf_dir_ioctl */
        !            96: +      NULL                    /* zero_out_cluster */
        !            97:  };
        !            98:  
        !            99:  struct cvf_format *cvf_formats[MAX_CVF_FORMATS]={NULL,NULL,NULL};
        !           100: diff -u -r linux-2.3.30-6-orig/fs/fat/fatfs_syms.c linux-2.3.30-6-new1/fs/fat/fatfs_syms.c
        !           101: --- linux-2.3.30-6-orig/fs/fat/fatfs_syms.c    Tue Oct 26 18:21:46 1999
        !           102: +++ linux-2.3.30-6-new1/fs/fat/fatfs_syms.c    Mon Nov  1 22:29:25 1999
        !           103: @@ -17,6 +17,7 @@
        !           104:  
        !           105:  extern struct file_operations fat_dir_operations;
        !           106:  
        !           107: +EXPORT_SYMBOL(fat_add_cluster);
        !           108:  EXPORT_SYMBOL(fat_new_dir);
        !           109:  EXPORT_SYMBOL(fat_bmap);
        !           110:  EXPORT_SYMBOL(fat_get_block);
        !           111: @@ -55,6 +56,12 @@
        !           112:  EXPORT_SYMBOL(fat_dir_ioctl);
        !           113:  EXPORT_SYMBOL(fat_add_entries);
        !           114:  EXPORT_SYMBOL(fat_dir_empty);
        !           115: +
        !           116: +#if 0 /* will be reenabled again for CVF mmap support */
        !           117: +EXPORT_SYMBOL(fat_mmap);
        !           118: +EXPORT_SYMBOL(fat_readpage);
        !           119: +EXPORT_SYMBOL(fat_writepage);
        !           120: +#endif
        !           121:  
        !           122:  int init_fat_fs(void)
        !           123:  {
        !           124: diff -u -r linux-2.3.30-6-orig/fs/fat/inode.c linux-2.3.30-6-new1/fs/fat/inode.c
        !           125: --- linux-2.3.30-6-orig/fs/fat/inode.c Sat Nov  6 00:27:28 1999
        !           126: +++ linux-2.3.30-6-new1/fs/fat/inode.c Sun Dec  5 01:16:44 1999
        !           127: @@ -434,12 +434,15 @@
        !           128:        struct msdos_sb_info *sbi = MSDOS_SB(sb);
        !           129:        char *p;
        !           130:        int data_sectors,logical_sector_size,sector_mult,fat_clusters=0;
        !           131: -      int debug,error,fat,cp;
        !           132: +      int debug;
        !           133: +      int error = 0;
        !           134: +      int fat,cp;
        !           135:        int blksize = 512;
        !           136:        int fat32;
        !           137:        struct fat_mount_options opts;
        !           138:        char buf[50];
        !           139: -      int i;
        !           140: +      int cvf_index=-1;
        !           141: +      /* int i; */
        !           142:        char cvf_format[21];
        !           143:        char cvf_options[101];
        !           144:  
        !           145: @@ -514,14 +517,15 @@
        !           146:        sbi->cluster_size = b->cluster_size*sector_mult;
        !           147:        if (!sbi->cluster_size || (sbi->cluster_size & (sbi->cluster_size-1))) {
        !           148:                printk("fatfs: bogus cluster size\n");
        !           149: -              brelse(bh);
        !           150: -              goto out_invalid;
        !           151: +              error = 1;
        !           152: +              /* brelse(bh);goto out_invalid; */
        !           153: +      }else{
        !           154: +              for (sbi->cluster_bits=0;
        !           155: +                   1<<sbi->cluster_bits<sbi->cluster_size;
        !           156: +                   sbi->cluster_bits++)
        !           157: +                      ;
        !           158: +              sbi->cluster_bits += SECTOR_BITS;
        !           159:        }
        !           160: -      for (sbi->cluster_bits=0;
        !           161: -           1<<sbi->cluster_bits<sbi->cluster_size;
        !           162: -           sbi->cluster_bits++)
        !           163: -              ;
        !           164: -      sbi->cluster_bits += SECTOR_BITS;
        !           165:        sbi->fats = b->fats;
        !           166:        sbi->fat_start = CF_LE_W(b->reserved)*sector_mult;
        !           167:        if (!b->fat_length && b->fat32_length) {
        !           168: @@ -573,7 +577,7 @@
        !           169:                data_sectors = CF_LE_L(b->total_sect);
        !           170:        }
        !           171:        data_sectors = data_sectors * sector_mult - sbi->data_start;
        !           172: -      error = !b->cluster_size || !sector_mult;
        !           173: +      error |= !sector_mult;
        !           174:        if (!error) {
        !           175:                sbi->clusters = b->cluster_size ? data_sectors/
        !           176:                    b->cluster_size/sector_mult : 0;
        !           177: @@ -599,11 +603,14 @@
        !           178:                                /* on odd sectors. */
        !           179:        sb->s_blocksize_bits = blksize == 512 ? 9 : (blksize == 1024 ? 10 : 11);
        !           180:        if (!strcmp(cvf_format,"none"))
        !           181: -              i = -1;
        !           182: +              cvf_index = -1;
        !           183:        else
        !           184: -              i = detect_cvf(sb,cvf_format);
        !           185: -      if (i >= 0)
        !           186: -              error = cvf_formats[i]->mount_cvf(sb,cvf_options);
        !           187: +              cvf_index = detect_cvf(sb,cvf_format);
        !           188: +      if (cvf_index >= 0) {
        !           189: +              ++cvf_format_use_count[cvf_index];
        !           190: +              sbi->cvf_format = cvf_formats[cvf_index];
        !           191: +              error = cvf_formats[cvf_index]->mount_cvf(sb,cvf_options);
        !           192: +      }
        !           193:        else if (sb->s_blocksize == 512)
        !           194:                sbi->cvf_format = &default_cvf;
        !           195:        else
        !           196: @@ -627,7 +634,7 @@
        !           197:                       sbi->root_cluster,sbi->free_clusters);
        !           198:                printk ("Transaction block size = %d\n",blksize);
        !           199:        }
        !           200: -      if (i<0) if (sbi->clusters+2 > fat_clusters)
        !           201: +      if (cvf_index<0) if (sbi->clusters+2 > fat_clusters)
        !           202:                sbi->clusters = fat_clusters-2;
        !           203:        if (error)
        !           204:                goto out_invalid;
        !           205: @@ -672,10 +679,6 @@
        !           206:        sb->s_root = d_alloc_root(root_inode);
        !           207:        if (!sb->s_root)
        !           208:                goto out_no_root;
        !           209: -      if(i>=0) {
        !           210: -              sbi->cvf_format = cvf_formats[i];
        !           211: -              ++cvf_format_use_count[i];
        !           212: -      }
        !           213:        return sb;
        !           214:  
        !           215:  out_no_root:
        !           216: @@ -687,6 +690,8 @@
        !           217:        unload_nls(sbi->nls_disk);
        !           218:        goto out_fail;
        !           219:  out_invalid:
        !           220: +      if(cvf_index>=0)
        !           221: +              --cvf_format_use_count[cvf_index];
        !           222:        if (!silent)
        !           223:                printk("VFS: Can't find a valid MSDOS filesystem on dev %s.\n",
        !           224:                        kdevname(sb->s_dev));
        !           225: diff -u -r linux-2.3.30-6-orig/fs/fat/misc.c linux-2.3.30-6-new1/fs/fat/misc.c
        !           226: --- linux-2.3.30-6-orig/fs/fat/misc.c  Mon Aug 30 17:23:14 1999
        !           227: +++ linux-2.3.30-6-new1/fs/fat/misc.c  Sun Dec  5 03:11:47 1999
        !           228: @@ -209,8 +209,16 @@
        !           229:        int cluster_size = MSDOS_SB(sb)->cluster_size;
        !           230:  
        !           231:        if (MSDOS_SB(sb)->fat_bits != 32) {
        !           232: -              if (inode->i_ino == MSDOS_ROOT_INO) return res;
        !           233: +              if (inode->i_ino == MSDOS_ROOT_INO){
        !           234: +#ifdef DEBUG
        !           235: +printk("FAT extend dir called for root\n");
        !           236: +#endif
        !           237: +                      return res;
        !           238: +              }
        !           239:        }
        !           240: +#ifdef DEBUG
        !           241: +printk("FAT extend dir called for NON-root\n");
        !           242: +#endif
        !           243:        if (!MSDOS_SB(sb)->free_clusters) return res;
        !           244:        lock_fat(sb);
        !           245:        limit = MSDOS_SB(sb)->clusters;
        !           246: @@ -279,9 +287,11 @@
        !           247:        sector = MSDOS_SB(sb)->data_start+(nr-2)*cluster_size;
        !           248:        last_sector = sector + cluster_size;
        !           249:        if (MSDOS_SB(sb)->cvf_format &&
        !           250: -          MSDOS_SB(sb)->cvf_format->zero_out_cluster)
        !           251: +          MSDOS_SB(sb)->cvf_format->zero_out_cluster){
        !           252: +              /* CVF zeroes full cluster only */
        !           253:                MSDOS_SB(sb)->cvf_format->zero_out_cluster(inode,nr);
        !           254: -      else
        !           255: +              res=fat_bread(sb,fat_bmap(inode,inode->i_blocks));
        !           256: +      }else
        !           257:        for ( ; sector < last_sector; sector++) {
        !           258:                #ifdef DEBUG
        !           259:                        printk("zeroing sector %d\n",sector);
        !           260: diff -u -r linux-2.3.30-6-orig/include/linux/fat_cvf.h linux-2.3.30-6-new1/include/linux/fat_cvf.h
        !           261: --- linux-2.3.30-6-orig/include/linux/fat_cvf.h        Mon Aug  9 18:43:49 1999
        !           262: +++ linux-2.3.30-6-new1/include/linux/fat_cvf.h        Sat Dec  4 23:25:26 1999
        !           263: @@ -30,8 +30,8 @@
        !           264:    ssize_t (*cvf_file_read) ( struct file *, char *, size_t, loff_t *);
        !           265:    ssize_t (*cvf_file_write) ( struct file *, const char *, size_t, loff_t *);
        !           266:    int (*cvf_mmap) (struct file *, struct vm_area_struct *);
        !           267: -  int (*cvf_readpage) (struct inode *, struct page *);
        !           268: -  int (*cvf_writepage) (struct inode *, struct page *);
        !           269: +  int (*cvf_readpage) (struct dentry *, struct page *);
        !           270: +  int (*cvf_writepage) (struct dentry *, struct page *);
        !           271:    int (*cvf_dir_ioctl) (struct inode * inode, struct file * filp,
        !           272:                          unsigned int cmd, unsigned long arg);
        !           273:    void (*zero_out_cluster) (struct inode*, int clusternr);
        !           274: diff -u -r linux-2.3.30-6-orig/include/linux/msdos_fs.h linux-2.3.30-6-new1/include/linux/msdos_fs.h
        !           275: --- linux-2.3.30-6-orig/include/linux/msdos_fs.h       Wed Oct 27 23:19:11 1999
        !           276: +++ linux-2.3.30-6-new1/include/linux/msdos_fs.h       Wed Nov 24 22:25:31 1999
        !           277: @@ -274,6 +274,7 @@
        !           278:  /* mmap.c */
        !           279:  extern int fat_mmap(struct file *, struct vm_area_struct *);
        !           280:  extern int fat_readpage(struct file *, struct page *);
        !           281: +extern int fat_writepage(struct file *, struct page *);
        !           282:  
        !           283:  
        !           284:  /* vfat.c */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.