| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update the file systems in fs/ implementing a delete_inode() callback to
call truncate_inode_pages(). One implementation note: In developing this
patch I put the calls to truncate_inode_pages() at the very top of those
filesystems delete_inode() callbacks in order to retain the previous
behavior. I'm guessing that some of those could probably be optimized.
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Acked-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow file systems supporting ->delete_inode() to call
truncate_inode_pages() on their own. OCFS2 wants this so it can query the
cluster before making a final decision on whether to wipe an inode from
disk or not. In some corner cases an inode marked on the local node via
voting may not actually get orphaned. A good example is node death before
the transaction moving the inode to the orphan dir commits to the journal.
Without this patch, the truncate_inode_pages() call in
generic_delete_inode() would discard valid data for such inodes.
During earlier discussion in the 2.6.13 merge plan thread, Christoph
Hellwig indicated that other file systems might also find this useful.
IMHO, the best solution would be to just allow ->drop_inode() to do the
cluster query but it seems that would require a substantial reworking of
that section of the code. Assuming it is safe to call write_inode_now() in
ocfs2_delete_inode() for those inodes which won't actually get wiped, this
solution should get us by for now.
Trivial testing of this patch (and a related OCFS2 update) has shown this
to avoid the corruption I'm seeing.
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Acked-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|
|
|
|
|
| |
<qualifier> void * is not the same as void <qualifier> *...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|\ |
|
| |
| |
| |
| | |
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
|\| |
|
| |
| |
| |
| | |
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| |
| |
| |
| |
| | |
Signed-off-by: Eric Sandeen <sandeen@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Christoph).
SGI-PV: 942400
SGI-Modid: xfs-linux-melb:xfs-kern:23771a
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| |
| |
| |
| | |
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| |
| | |
fs/ntfs/aops.c::ntfs_end_buffer_async_read() to a bit spin lock
in the first buffer head of a page.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| | |
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| | |
fs/ntfs/aops.c::ntfs_readpage().
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| | |
where a concurrent truncate has truncated the runlist under our feet.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| |
| | |
lock protection over the buffer submission for i/o which allows the
removal of the get_bh()/put_bh() pairs for each buffer.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| | |
fs/ntfs/aops.c::ntfs_writepage().
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| | |
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| | |
fs/ntfs/inode.c::ntfs_read_locked_{,attr_,index_}inode().
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| | |
updating the times in the inode in ntfs_setattr().
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| |
| | |
importantly to take a locked runlist rather than them locking it
which leads to lock reversal.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Also, add BUG() checks to ntfs_attr_make_non_resident() and
ntfs_attr_set() to ensure that these functions are never called
for compressed or encrypted attributes.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Fix a bug in ntfs_map_runlist_nolock() where we forgot to protect
access to the allocated size in the ntfs inode with the size lock.
- Fix ntfs_attr_vcn_to_lcn_nolock() and ntfs_attr_find_vcn_nolock() to
return LCN_ENOENT when there is no runlist and the allocated size is
zero.
- Fix load_attribute_list() to handle the case of a NULL runlist.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| | |
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| | |
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| |
| | |
index entry is in the index root, we forgot to set the @ir pointer in
the index context. Thanks for Yura Pakhuchiy for finding this bug.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| | |
a runlist.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| | |
length is zero.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| |
| | |
messages and include the inode number. Thanks to Yura Pakhuchiy for
pointing this out.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| | |
fs/ntfs/runlist.c::ntfs_mapping_pairs_decompress().
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| | |
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| | |
Thanks to Stefano Picerno for the bug report.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| |
| | |
in the two critical regions. This means we no longer need to
panic() when the allocation fails as it now cannot fail.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Modify fs/ntfs/malloc.h::ntfs_malloc_nofs() to do the kmalloc() based
allocations with __GFP_HIGHMEM, analogous to how the vmalloc() based
allocations are done.
- Add fs/ntfs/malloc.h::ntfs_malloc_nofs_nofail() which is analogous to
ntfs_malloc_nofs() but it performs allocations with __GFP_NOFAIL and
hence cannot fail.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Support journals ($LogFile) which have been modified by chkdsk. This
means users can boot into Windows after we marked the volume dirty.
The Windows boot will run chkdsk and then reboot. The user can then
immediately boot into Linux rather than having to do a full Windows
boot first before rebooting into Linux and we will recognize such a
journal and empty it as it is clean by definition.
- Support journals ($LogFile) with only one restart page as well as
journals with two different restart pages. We sanity check both and
either use the only sane one or the more recent one of the two in the
case that both are valid.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | | |
Signed-off-by: Jens Axboe <axboe@suse.de>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Jens Axboe <axboe@suse.de>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add blk_rq_map_kern which takes a kernel buffer and maps it into
a request and bio. This can be used by the dm hw_handlers, old
sg_scsi_ioctl, and one day scsi special requests so all requests
comming into scsi will have bios. All requests having bios
should allow scsi to use scatter lists for all IO and allow it
to use block layer functions.
Signed-off-by: Jens Axboe <axboe@suse.de>
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
SGI-PV: 904196
SGI-Modid: xfs-linux-melb:xfs-kern:23719a
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
(luckily just cosmetic).
SGI-PV: 942232
SGI-Modid: xfs-linux-melb:xfs-kern:23718a
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
<bunk@stusta.de>, thanks a lot!
SGI-PV: 942227
SGI-Modid: xfs-linux:xfs-kern:198642a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
SGI-PV: 942063
SGI-Modid: xfs-linux:xfs-kern:198388a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
the pagebuf had been unlocked if the buffer was delwri. At high load, this
could result in a race when the superblock was being synced that would
result the flags being incorrect and the iodone functions being executed
incorrectly. This then leads to iclog callback failures or AIL list
corruptions resulting in filesystem shutdowns.
SGI-PV: 923981
SGI-Modid: xfs-linux:xfs-kern:23616a
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
fixes crashes under high nfs load
SGI-PV: 941429
SGI-Modid: xfs-linux:xfs-kern:197929a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
which can cause an extent hole to be filled and a free extent to be
processed. In this case, we make a few mistakes: forget to pass back the
transaction, forget to put a hold on the buffer and forget to add the buf
to the new transaction.
SGI-PV: 940366
SGI-Modid: xfs-linux:xfs-kern:23594a
Signed-off-by: Tim Shimmin <tes@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
SGI-PV: 934766
SGI-Modid: xfs-linux:xfs-kern:197783a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
SGI-PV: 940531
SGI-Modid: xfs-linux:xfs-kern:197782a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
SGI-PV: 904196
SGI-Modid: xfs-linux:xfs-kern:23563a
Signed-off-by: Nathan Scott <nathans@sgi.com>
|