Loading fs/ntfs/ChangeLog +1 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ ToDo/Notes: - 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 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 many bug fixes, cleanups, and enhancements... Loading fs/ntfs/compress.c +0 −8 Original line number Diff line number Diff line Loading @@ -539,7 +539,6 @@ int ntfs_read_compressed_block(struct page *page) if (unlikely(!pages || !bhs)) { kfree(bhs); kfree(pages); SetPageError(page); unlock_page(page); ntfs_error(vol->sb, "Failed to allocate internal buffers."); return -ENOMEM; Loading Loading @@ -871,9 +870,6 @@ int ntfs_read_compressed_block(struct page *page) for (; prev_cur_page < cur_page; prev_cur_page++) { page = pages[prev_cur_page]; if (page) { if (prev_cur_page == xpage && !xpage_done) SetPageError(page); flush_dcache_page(page); kunmap(page); unlock_page(page); Loading Loading @@ -904,8 +900,6 @@ int ntfs_read_compressed_block(struct page *page) "Terminating them with extreme " "prejudice. Inode 0x%lx, page index " "0x%lx.", ni->mft_no, page->index); if (cur_page == xpage && !xpage_done) SetPageError(page); flush_dcache_page(page); kunmap(page); unlock_page(page); Loading Loading @@ -953,8 +947,6 @@ int ntfs_read_compressed_block(struct page *page) for (i = cur_page; i < max_page; i++) { page = pages[i]; if (page) { if (i == xpage && !xpage_done) SetPageError(page); flush_dcache_page(page); kunmap(page); unlock_page(page); Loading fs/ntfs/file.c +7 −2 Original line number Diff line number Diff line /* * 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 * modify it under the terms of the GNU General Public License as published Loading Loading @@ -94,6 +94,11 @@ static int ntfs_file_fsync(struct file *filp, struct dentry *dentry, if (!datasync || !NInoNonResident(NTFS_I(vi))) ret = ntfs_write_inode(vi, 1); 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); if (unlikely(err && !ret)) ret = err; Loading Loading
fs/ntfs/ChangeLog +1 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ ToDo/Notes: - 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 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 many bug fixes, cleanups, and enhancements... Loading
fs/ntfs/compress.c +0 −8 Original line number Diff line number Diff line Loading @@ -539,7 +539,6 @@ int ntfs_read_compressed_block(struct page *page) if (unlikely(!pages || !bhs)) { kfree(bhs); kfree(pages); SetPageError(page); unlock_page(page); ntfs_error(vol->sb, "Failed to allocate internal buffers."); return -ENOMEM; Loading Loading @@ -871,9 +870,6 @@ int ntfs_read_compressed_block(struct page *page) for (; prev_cur_page < cur_page; prev_cur_page++) { page = pages[prev_cur_page]; if (page) { if (prev_cur_page == xpage && !xpage_done) SetPageError(page); flush_dcache_page(page); kunmap(page); unlock_page(page); Loading Loading @@ -904,8 +900,6 @@ int ntfs_read_compressed_block(struct page *page) "Terminating them with extreme " "prejudice. Inode 0x%lx, page index " "0x%lx.", ni->mft_no, page->index); if (cur_page == xpage && !xpage_done) SetPageError(page); flush_dcache_page(page); kunmap(page); unlock_page(page); Loading Loading @@ -953,8 +947,6 @@ int ntfs_read_compressed_block(struct page *page) for (i = cur_page; i < max_page; i++) { page = pages[i]; if (page) { if (i == xpage && !xpage_done) SetPageError(page); flush_dcache_page(page); kunmap(page); unlock_page(page); Loading
fs/ntfs/file.c +7 −2 Original line number Diff line number Diff line /* * 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 * modify it under the terms of the GNU General Public License as published Loading Loading @@ -94,6 +94,11 @@ static int ntfs_file_fsync(struct file *filp, struct dentry *dentry, if (!datasync || !NInoNonResident(NTFS_I(vi))) ret = ntfs_write_inode(vi, 1); 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); if (unlikely(err && !ret)) ret = err; Loading