NTFS: Remove bogus setting of PageError in ntfs_read_compressed_block().
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
This commit is contained in:
parent
8e08ceaeac
commit
f25dfb5e44
3 changed files with 8 additions and 10 deletions
|
@ -58,6 +58,7 @@ ToDo/Notes:
|
||||||
- Fix a bug in fs/ntfs/index.c::ntfs_index_lookup(). When the returned
|
- Fix a bug in fs/ntfs/index.c::ntfs_index_lookup(). When the returned
|
||||||
index entry is in the index root, we forgot to set the @ir pointer in
|
index entry is in the index root, we forgot to set the @ir pointer in
|
||||||
the index context. Thanks to Yura Pakhuchiy for finding this bug.
|
the index context. Thanks to Yura Pakhuchiy for finding this bug.
|
||||||
|
- Remove bogus setting of PageError in ntfs_read_compressed_block().
|
||||||
|
|
||||||
2.1.23 - Implement extension of resident files and make writing safe as well as
|
2.1.23 - Implement extension of resident files and make writing safe as well as
|
||||||
many bug fixes, cleanups, and enhancements...
|
many bug fixes, cleanups, and enhancements...
|
||||||
|
|
|
@ -539,7 +539,6 @@ int ntfs_read_compressed_block(struct page *page)
|
||||||
if (unlikely(!pages || !bhs)) {
|
if (unlikely(!pages || !bhs)) {
|
||||||
kfree(bhs);
|
kfree(bhs);
|
||||||
kfree(pages);
|
kfree(pages);
|
||||||
SetPageError(page);
|
|
||||||
unlock_page(page);
|
unlock_page(page);
|
||||||
ntfs_error(vol->sb, "Failed to allocate internal buffers.");
|
ntfs_error(vol->sb, "Failed to allocate internal buffers.");
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -871,9 +870,6 @@ lock_retry_remap:
|
||||||
for (; prev_cur_page < cur_page; prev_cur_page++) {
|
for (; prev_cur_page < cur_page; prev_cur_page++) {
|
||||||
page = pages[prev_cur_page];
|
page = pages[prev_cur_page];
|
||||||
if (page) {
|
if (page) {
|
||||||
if (prev_cur_page == xpage &&
|
|
||||||
!xpage_done)
|
|
||||||
SetPageError(page);
|
|
||||||
flush_dcache_page(page);
|
flush_dcache_page(page);
|
||||||
kunmap(page);
|
kunmap(page);
|
||||||
unlock_page(page);
|
unlock_page(page);
|
||||||
|
@ -904,8 +900,6 @@ lock_retry_remap:
|
||||||
"Terminating them with extreme "
|
"Terminating them with extreme "
|
||||||
"prejudice. Inode 0x%lx, page index "
|
"prejudice. Inode 0x%lx, page index "
|
||||||
"0x%lx.", ni->mft_no, page->index);
|
"0x%lx.", ni->mft_no, page->index);
|
||||||
if (cur_page == xpage && !xpage_done)
|
|
||||||
SetPageError(page);
|
|
||||||
flush_dcache_page(page);
|
flush_dcache_page(page);
|
||||||
kunmap(page);
|
kunmap(page);
|
||||||
unlock_page(page);
|
unlock_page(page);
|
||||||
|
@ -953,8 +947,6 @@ err_out:
|
||||||
for (i = cur_page; i < max_page; i++) {
|
for (i = cur_page; i < max_page; i++) {
|
||||||
page = pages[i];
|
page = pages[i];
|
||||||
if (page) {
|
if (page) {
|
||||||
if (i == xpage && !xpage_done)
|
|
||||||
SetPageError(page);
|
|
||||||
flush_dcache_page(page);
|
flush_dcache_page(page);
|
||||||
kunmap(page);
|
kunmap(page);
|
||||||
unlock_page(page);
|
unlock_page(page);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* file.c - NTFS kernel file operations. Part of the Linux-NTFS project.
|
* file.c - NTFS kernel file operations. Part of the Linux-NTFS project.
|
||||||
*
|
*
|
||||||
* Copyright (c) 2001-2004 Anton Altaparmakov
|
* Copyright (c) 2001-2005 Anton Altaparmakov
|
||||||
*
|
*
|
||||||
* This program/include file is free software; you can redistribute it and/or
|
* This program/include file is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License as published
|
* modify it under the terms of the GNU General Public License as published
|
||||||
|
@ -94,6 +94,11 @@ static int ntfs_file_fsync(struct file *filp, struct dentry *dentry,
|
||||||
if (!datasync || !NInoNonResident(NTFS_I(vi)))
|
if (!datasync || !NInoNonResident(NTFS_I(vi)))
|
||||||
ret = ntfs_write_inode(vi, 1);
|
ret = ntfs_write_inode(vi, 1);
|
||||||
write_inode_now(vi, !datasync);
|
write_inode_now(vi, !datasync);
|
||||||
|
/*
|
||||||
|
* NOTE: If we were to use mapping->private_list (see ext2 and
|
||||||
|
* fs/buffer.c) for dirty blocks then we could optimize the below to be
|
||||||
|
* sync_mapping_buffers(vi->i_mapping).
|
||||||
|
*/
|
||||||
err = sync_blockdev(vi->i_sb->s_bdev);
|
err = sync_blockdev(vi->i_sb->s_bdev);
|
||||||
if (unlikely(err && !ret))
|
if (unlikely(err && !ret))
|
||||||
ret = err;
|
ret = err;
|
||||||
|
|
Loading…
Add table
Reference in a new issue