Displaying 7 results from an estimated 7 matches for "buffer_lock".
Did you mean:
buffer_locked
2009 Jun 09
4
[PATCH] btrfs: fix write_dev_supers
Hi.
I got following BUG trace.
This is violation of BUG_ON(!buffer_locked(bh)) check on submit_bh() function.
In write_dev_supers(), if wait parameter is set and buffer_uptodate() check
is negative, submit_bh() is executed and hit above BUG_ON.
So I fixed this issue.
Thanks.
Jun 9 00:41:32 dl580 kernel: ------------[ cut here ]------------
Jun 9 00:41:32 dl580 ker...
2010 Jul 13
0
[PATCH 1/2] btrfs: restructure try_release_extent_buffer()
..._extent_buffer(eb);
return exists;
}
@@ -3831,8 +3861,6 @@ int try_release_extent_buffer(struct extent_io_tree *tree, struct page *page)
u64 start = page_offset(page);
struct extent_buffer *eb;
int ret = 1;
- unsigned long i;
- unsigned long num_pages;
spin_lock(&tree->buffer_lock);
eb = buffer_search(tree, start);
@@ -3847,12 +3875,10 @@ int try_release_extent_buffer(struct extent_io_tree *tree, struct page *page)
ret = 0;
goto out;
}
- /* at this point we can safely release the extent buffer */
- num_pages = num_extent_pages(eb->start, eb->len);
- for (...
2001 Mar 30
1
Re: Bug in __invalidate_buffers?
...amp;
bh->b_list != BUF_CLEAN) {
unlock_journal(journal);
refile_buffer(bh);
--- fs/jfs/journal.c.orig Thu Mar 1 16:14:59 2001
+++ fs/jfs/journal.c Thu Mar 29 17:09:23 2001
@@ -242,9 +242,13 @@
do {
bh = next;
transaction->t_datalist = next = bh->b_tnext;
-
- if (!buffer_locked(bh) &&
- !buffer_dirty(bh)) {
+
+ if (bh->b_dev == B_FREE) {
+ journal_unfile_buffer(bh);
+ bh->b_transaction = NULL;
+ if (bh->b_cp_transaction)
+ journal_remove_checkpoint(bh);
+ } else if (!buffer_locked(bh) && !buffer_dirty(bh)) {
journal_unfile_b...
2012 Dec 18
0
[PATCH] [RFC] Btrfs: Subpagesize blocksize (WIP).
...while ((eb = eb->next));
+ BUG_ON(!eb);
+ }
/* the pending IO might have been the only thing that kept this buffer
* in memory. Make sure we have a ref for all this other checks
@@ -615,8 +673,11 @@ static int btree_readpage_end_io_hook(struct page *page, u64 start, u64 end,
btrfs_set_buffer_lockdep_class(btrfs_header_owner(eb),
eb, found_level);
- ret = csum_tree_block(root, eb, 1);
- if (ret) {
+ /*
+ * Subpagesize blocksize checksumming is currently done in
+ * btree_read_extent_buffer_pages().
+ */
+ if (eb->len >= PAGE_SIZE && csum_tree_block(root, eb, 1)...
2005 Jan 04
0
[PATCH] BUG on error handlings in Ext3 under I/O failure condition
...hanged */
@@ -351,6 +355,9 @@
}
spin_unlock(&journal_datalist_lock);
+ if (err)
+ __journal_abort_hard(journal);
+
/*
* If we found any dirty or locked buffers, then we should have
* looped back up to the write_out_data label. If there weren't
@@ -541,6 +548,8 @@
if (buffer_locked(bh)) {
unlock_journal(journal);
wait_on_buffer(bh);
+ if (unlikely(!buffer_uptodate(bh)))
+ err = -EIO;
lock_journal(journal);
goto wait_for_iobuf;
}
@@ -602,6 +611,8 @@
if (buffer_locked(bh)) {
unlock_journal(journal);
wait_on_buffer(bh);
+ if (unlike...
2005 Sep 09
7
[PATCH 0/6] jbd cleanup
The following 6 patches cleanup the jbd code and kill about 200 lines.
First of 4 patches can apply to 2.6.13-git8 and 2.6.13-mm2.
The rest of them can apply to 2.6.13-mm2.
fs/jbd/checkpoint.c | 179 +++++++++++--------------------------------
fs/jbd/commit.c | 101 ++++++++++--------------
fs/jbd/journal.c | 11 +-
fs/jbd/revoke.c | 158
2009 Feb 13
44
[PATCH 0/40] ocfs2: Detach ocfs2 metadata I/O from struct inode
The following series of patches attempts to detach metadata I/O from
struct inode. They are currently tied together pretty tightly.
Metadata reads happen via the ocfs2_read_blocks() functions, writes via
both jbd2 and ocfs2_write_blocks().
- Each inode has a cache of associated metadata blocks stored on its
ip_metadata_cache member. The ocfs2_read/write_blocks() functions
take a struct