search for: buffer_lock

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