*** linux/fs/fat/file.orig.c Thu Mar 30 10:01:53 2000 --- linux/fs/fat/file.c Thu Mar 30 10:06:20 2000 *************** *** 125,131 **** if (IS_IMMUTABLE(inode)) return /* -EPERM */; cluster = SECTOR_SIZE*sbi->cluster_size; ! MSDOS_I(inode)->mmu_private = inode->i_size; fat_free(inode,(inode->i_size+(cluster-1))>>sbi->cluster_bits); MSDOS_I(inode)->i_attrs |= ATTR_ARCH; inode->i_ctime = inode->i_mtime = CURRENT_TIME; --- 125,137 ---- if (IS_IMMUTABLE(inode)) return /* -EPERM */; cluster = SECTOR_SIZE*sbi->cluster_size; ! ! /* We never increase mmu_private, or else prepare_write won't ! * be able to grow the file. ! */ ! if (MSDOS_I(inode)->mmu_private > inode->i_size) ! MSDOS_I(inode)->mmu_private = inode->i_size; ! fat_free(inode,(inode->i_size+(cluster-1))>>sbi->cluster_bits); MSDOS_I(inode)->i_attrs |= ATTR_ARCH; inode->i_ctime = inode->i_mtime = CURRENT_TIME;