file.c (7b7fd0ac7dc1ffcaf24d9bca0f051b0168e43cd4) | file.c (550ef40fa6366d5d11b122e5f36b1f9aa20c087e) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * 4 * Copyright (C) 2019-2021 Paragon Software GmbH, All rights reserved. 5 * 6 * Regular file handling primitives for NTFS-based filesystems. 7 * 8 */ --- 1159 unchanged lines hidden (view full) --- 1168{ 1169 struct ntfs_inode *ni = ntfs_i(inode); 1170 struct ntfs_sb_info *sbi = ni->mi.sbi; 1171 int err = 0; 1172 1173 /* If we are last writer on the inode, drop the block reservation. */ 1174 if (sbi->options->prealloc && 1175 ((file->f_mode & FMODE_WRITE) && | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * 4 * Copyright (C) 2019-2021 Paragon Software GmbH, All rights reserved. 5 * 6 * Regular file handling primitives for NTFS-based filesystems. 7 * 8 */ --- 1159 unchanged lines hidden (view full) --- 1168{ 1169 struct ntfs_inode *ni = ntfs_i(inode); 1170 struct ntfs_sb_info *sbi = ni->mi.sbi; 1171 int err = 0; 1172 1173 /* If we are last writer on the inode, drop the block reservation. */ 1174 if (sbi->options->prealloc && 1175 ((file->f_mode & FMODE_WRITE) && |
1176 atomic_read(&inode->i_writecount) == 1)) { | 1176 atomic_read(&inode->i_writecount) == 1) 1177 /* 1178 * The only file when inode->i_fop = &ntfs_file_operations and 1179 * init_rwsem(&ni->file.run_lock) is not called explicitly is MFT. 1180 * 1181 * Add additional check here. 1182 */ 1183 && inode->i_ino != MFT_REC_MFT) { |
1177 ni_lock(ni); 1178 down_write(&ni->file.run_lock); 1179 1180 err = attr_set_size(ni, ATTR_DATA, NULL, 0, &ni->file.run, 1181 i_size_read(inode), &ni->i_valid, false, 1182 NULL); 1183 1184 up_write(&ni->file.run_lock); --- 54 unchanged lines hidden --- | 1184 ni_lock(ni); 1185 down_write(&ni->file.run_lock); 1186 1187 err = attr_set_size(ni, ATTR_DATA, NULL, 0, &ni->file.run, 1188 i_size_read(inode), &ni->i_valid, false, 1189 NULL); 1190 1191 up_write(&ni->file.run_lock); --- 54 unchanged lines hidden --- |