Annotation of dmsdos/patches/linux-2.3.30-pre6-dmsdos.patch-1, revision 1.1.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.