fat: remove i_alloc_sem abuse
[firefly-linux-kernel-4.4.55.git] / fs / fat / file.c
index 7018e1d8902dee6c4b38f7247a38e9315cba27f5..a4a3a3c06436d79293cc349187f616a3e6e79bd2 100644 (file)
@@ -429,8 +429,10 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr)
        }
 
        if (attr->ia_valid & ATTR_SIZE) {
+               down_write(&MSDOS_I(inode)->truncate_lock);
                truncate_setsize(inode, attr->ia_size);
                fat_truncate_blocks(inode, attr->ia_size);
+               up_write(&MSDOS_I(inode)->truncate_lock);
        }
 
        setattr_copy(inode, attr);