This patch set provides support for doing fallocate operation on FAT filesystem. v8: - Make fat_bmap as common and control via. argument to check invocation path. If it is from fibmap interface change the last_block calculation and get proper block mapping otherwise make it work like normal path and throw error if it exceeds EOF - Also retain the fat12/fat16 condition to avoid checking cluster chain for root inode - clean up the evict path, make separate static routine for freeing up blocks past EOF v7: - Make last_block calculation dependent upon the sector size, as the default i_blocks is always fixed with 512 byte alignment but the blocksize will vary in 4KB sector size disk. Also, tested using fsstress and fsx(both buffered and directIO) to cover if there are any issues. v6: - Remove usage of i_disksize - Align all fallocate code sequence to use i_blocks as this is more or less can be used to denote the on-disksize. Also, i_blocks is common in update path of cluster allocation via. fat_chain_add() both from normal write path and fallocate() operation v5: - change all routines to make ->i_disksize aligned by cluster size. - merge fat_bmap2() and fat_get_block_bmap(). v4: - ->i_disksize is aligned by block size in fill_inode. - use i_disksize when computing the number of cluster for fallocate. - make fat_get_block_bmap to avoid race issue. - use __fat_write_inode() with inode_needs_sync() in evict. v3: - fix i_disksize and mmu_private comments(uninit/initialized) - remove unneeded condition in fat_bmap. - use mmu_private instead of fclus in fat_fallocate. - make function mark buffer new for block in fallocated region. - use flags for bmap. - use mmu_private instead of i_size in direct_IO. - use flags and remove i_mutex in bmap. - update vfat documentation. v2: - remove a stary unlock(from Dan Carpenter) - check ->mmu_private and ->i_disksize to truncate uninitialized data. Namjae Jeon (4): fat: add fat_fallocate operation fat: skip cluster allocation on fallocated region fat: permit to return phy block number by fibmap in fallocated region Documentation/filesystems/vfat.txt: update the limitation for fat fallocate Documentation/filesystems/vfat.txt | 10 +++++ fs/fat/cache.c | 80 ++++++++++++++++++++++++------------ fs/fat/dir.c | 2 +- fs/fat/fat.h | 6 ++- fs/fat/file.c | 61 +++++++++++++++++++++++++++ fs/fat/inode.c | 75 +++++++++++++++++++++++++++++---- 6 files changed, 199 insertions(+), 35 deletions(-) -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html