diff --git a/fs/fat/inode.c b/fs/fat/inode.c index d85c8fbdcca4..353c91f0a843 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c @@ -217,7 +217,9 @@ static void fat_write_failed(struct address_space *mapping, loff_t to) if (to > inode->i_size) { truncate_pagecache(inode, inode->i_size); + down_write(&MSDOS_I(inode)->truncate_lock); fat_truncate_blocks(inode, inode->i_size); + up_write(&MSDOS_I(inode)->truncate_lock); } }