jbd2_journal_forget — bforget for potentially-journaled buffers.


int jbd2_journal_forget (handle_t * handle,
 struct buffer_head * bh);


handle_t * handle

transaction handle

struct buffer_head * bh

bh to 'forget'


We can only do the bforget if there are no commits pending against the buffer. If the buffer is dirty in the current running transaction we can safely unlink it.

bh may not be a journalled buffer at all - it may be a non-JBD buffer which came off the hashtable. Check for this.

Decrements bh->b_count by one.

Allow this call even if the handle has aborted --- it may be part of the caller's cleanup after an abort.