mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 12:44:11 +08:00
fs/ntfs3: Keep prealloc for all types of files
Before we haven't kept prealloc for sparse files because we thought that
it will speed up create / write operations.
It lead to situation, when user reserved some space for sparse file,
filled volume, and wasn't able to write in reserved file.
With this commit we keep prealloc.
Now xfstest generic/274 pass.
Fixes: be71b5cba2
("fs/ntfs3: Add attrib operations")
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
This commit is contained in:
parent
95dd8b2c1e
commit
ce46ae0c3e
@ -447,11 +447,8 @@ again:
|
||||
again_1:
|
||||
align = sbi->cluster_size;
|
||||
|
||||
if (is_ext) {
|
||||
if (is_ext)
|
||||
align <<= attr_b->nres.c_unit;
|
||||
if (is_attr_sparsed(attr_b))
|
||||
keep_prealloc = false;
|
||||
}
|
||||
|
||||
old_valid = le64_to_cpu(attr_b->nres.valid_size);
|
||||
old_size = le64_to_cpu(attr_b->nres.data_size);
|
||||
@ -461,9 +458,6 @@ again_1:
|
||||
new_alloc = (new_size + align - 1) & ~(u64)(align - 1);
|
||||
new_alen = new_alloc >> cluster_bits;
|
||||
|
||||
if (keep_prealloc && is_ext)
|
||||
keep_prealloc = false;
|
||||
|
||||
if (keep_prealloc && new_size < old_size) {
|
||||
attr_b->nres.data_size = cpu_to_le64(new_size);
|
||||
mi_b->dirty = true;
|
||||
|
Loading…
Reference in New Issue
Block a user