diff options
Diffstat (limited to 'fs/ntfs/attrib.c')
-rw-r--r-- | fs/ntfs/attrib.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/ntfs/attrib.c b/fs/ntfs/attrib.c index 104eedfb2507..34ea405b883d 100644 --- a/fs/ntfs/attrib.c +++ b/fs/ntfs/attrib.c | |||
@@ -1285,6 +1285,8 @@ int ntfs_attr_make_non_resident(ntfs_inode *ni) | |||
1285 | new_size = (i_size_read(vi) + vol->cluster_size - 1) & | 1285 | new_size = (i_size_read(vi) + vol->cluster_size - 1) & |
1286 | ~(vol->cluster_size - 1); | 1286 | ~(vol->cluster_size - 1); |
1287 | if (new_size > 0) { | 1287 | if (new_size > 0) { |
1288 | runlist_element *rl2; | ||
1289 | |||
1288 | /* | 1290 | /* |
1289 | * Will need the page later and since the page lock nests | 1291 | * Will need the page later and since the page lock nests |
1290 | * outside all ntfs locks, we need to get the page now. | 1292 | * outside all ntfs locks, we need to get the page now. |
@@ -1304,6 +1306,12 @@ int ntfs_attr_make_non_resident(ntfs_inode *ni) | |||
1304 | err); | 1306 | err); |
1305 | goto page_err_out; | 1307 | goto page_err_out; |
1306 | } | 1308 | } |
1309 | /* Change the runlist terminator to LCN_ENOENT. */ | ||
1310 | rl2 = rl; | ||
1311 | while (rl2->length) | ||
1312 | rl2++; | ||
1313 | BUG_ON(rl2->lcn != LCN_RL_NOT_MAPPED); | ||
1314 | rl2->lcn = LCN_ENOENT; | ||
1307 | } else { | 1315 | } else { |
1308 | rl = NULL; | 1316 | rl = NULL; |
1309 | page = NULL; | 1317 | page = NULL; |