Displaying 16 results from an estimated 16 matches for "j_state_lock".
2010 Aug 04
6
[PATCH -v2 0/3] jbd2 scalability patches
...in the 2nd patch of this series that
caused kernel BUG when the system was under race. We weren't accounting
with t_oustanding_credits correctly, and there were race conditions
caused by the fact the I had overlooked the fact that
__jbd2_log_wait_for_space() and jbd2_get_transaction() requires
j_state_lock to be write locked.
Theodore Ts'o (3):
jbd2: Use atomic variables to avoid taking t_handle_lock in
jbd2_journal_stop
jbd2: Change j_state_lock to be a rwlock_t
jbd2: Remove t_handle_lock from start_this_handle()
fs/ext4/inode.c | 4 +-
fs/ext4/super.c | 4 +-
fs/j...
2007 Jun 16
1
kjournald hang on ext3 to ext3 copy
All,
I am running into a situation in which one of my ext3 filesystems is
getting hung during normal usage. There are three ext3 filesystems on a
CompactFLASH. One is mounted as / and one as /tmp. In my test, I am
copying a 100 MB file from /root to /tmp repeatedly. While doing this
test, I eventually see the copying stop, and any attempts to access /tmp
fail - if I even do ls /tmp the
2008 Mar 06
0
oss umount hangs forever
...it_sequence)) {
546 jbd_debug(1, "JBD: want %d, j_commit_sequence=%d\n",
547 tid, journal->j_commit_sequence);
548 wake_up(&journal->j_wait_commit);
549 spin_unlock(&journal->j_state_lock);
550 wait_event(journal->j_wait_done_commit,
551 !tid_gt(tid, journal->j_commit_sequence));
552 spin_lock(&journal->j_state_lock);
553 }
554 spin_unlock(&journal->j_state_lock);...
2006 Aug 14
0
Question concerning the EXT3 Journaling code
...tained in file fs/jbd/transaction.c, and I have a question concerning
the wake_up() logic for the thread which may go to sleep on
<j_wait_transaction_locked>.
The thread will sleep as long as <j_barrier_count> is non-zero:
repeat:
spin_lock(&journal->j_state_lock);
...
if (journal->j_barrier_count) {
spin_unlock(&journal->j_state_lock);
wait_event(...);
goto repeat;
}
...
if (...) {...
2011 Jan 26
0
[PATCH 2/3] jbd2: Remove barrier feature conditional flag (or: always issue flushes)
...ext4/super.c b/fs/ext4/super.c
index 48ce561..7379829 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3704,10 +3704,6 @@ static void ext4_init_journal_params(struct super_block *sb, journal_t *journal)
journal->j_max_batch_time = sbi->s_max_batch_time;
write_lock(&journal->j_state_lock);
- if (test_opt(sb, BARRIER))
- journal->j_flags |= JBD2_BARRIER;
- else
- journal->j_flags &= ~JBD2_BARRIER;
if (test_opt(sb, DATA_ERR_ABORT))
journal->j_flags |= JBD2_ABORT_ON_SYNCDATA_ERR;
else
@@ -3899,9 +3895,6 @@ static int ext4_load_journal(struct super_block *sb,...
2018 Feb 23
2
v4.16-rc2: virtio-block + ext4 lockdep splats / sleeping from invalid context
...[ 162.338055] WARNING: inconsistent lock state
[ 162.339017] 4.16.0-rc2 #1 Not tainted
[ 162.339797] --------------------------------
[ 162.340725] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-R} usage.
[ 162.342030] swapper/0/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
[ 162.343061] (&journal->j_state_lock){+?++}, at: [<000000003b9c3e4b>] jbd2_trans_will_send_data_barrier+0x44/0xc8
[ 162.353187] {HARDIRQ-ON-W} state was registered at:
[ 162.354433] lock_acquire+0x48/0x68
[ 162.358640] _raw_write_lock+0x3c/0x50
[ 162.360716] ext4_init_journal_params.isra.6+0x40/0xa0
[ 162.363445] ex...
2018 Feb 23
2
v4.16-rc2: virtio-block + ext4 lockdep splats / sleeping from invalid context
...[ 162.338055] WARNING: inconsistent lock state
[ 162.339017] 4.16.0-rc2 #1 Not tainted
[ 162.339797] --------------------------------
[ 162.340725] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-R} usage.
[ 162.342030] swapper/0/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
[ 162.343061] (&journal->j_state_lock){+?++}, at: [<000000003b9c3e4b>] jbd2_trans_will_send_data_barrier+0x44/0xc8
[ 162.353187] {HARDIRQ-ON-W} state was registered at:
[ 162.354433] lock_acquire+0x48/0x68
[ 162.358640] _raw_write_lock+0x3c/0x50
[ 162.360716] ext4_init_journal_params.isra.6+0x40/0xa0
[ 162.363445] ex...
2009 Feb 05
1
[PATCH 1/3] jbd2: Fix possible NULL pointer dereference in jbd2_journal_begin_ordered_truncate()
...t;i_transaction)
goto out;
- journal = inode->i_transaction->t_journal;
+ /* Locks are here just to force reading of recent values, it is
+ * enough that the transaction was not committing before we started
+ * a transaction adding the inode to orphan list */
spin_lock(&journal->j_state_lock);
commit_trans = journal->j_committing_transaction;
spin_unlock(&journal->j_state_lock);
- if (inode->i_transaction == commit_trans) {
- ret = filemap_fdatawrite_range(inode->i_vfs_inode->i_mapping,
+ spin_lock(&journal->j_list_lock);
+ inode_trans = jinode->i_tran...
2009 Feb 24
1
[STABLE, 2.6.27.y] jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate()
...t;i_transaction)
goto out;
- journal = inode->i_transaction->t_journal;
+ /* Locks are here just to force reading of recent values, it is
+ * enough that the transaction was not committing before we started
+ * a transaction adding the inode to orphan list */
spin_lock(&journal->j_state_lock);
commit_trans = journal->j_committing_transaction;
spin_unlock(&journal->j_state_lock);
- if (inode->i_transaction == commit_trans) {
- ret = filemap_fdatawrite_range(inode->i_vfs_inode->i_mapping,
+ spin_lock(&journal->j_list_lock);
+ inode_trans = jinode->i_tran...
2018 Feb 26
0
v4.16-rc2: virtio-block + ext4 lockdep splats / sleeping from invalid context
...nconsistent lock state
> [ 162.339017] 4.16.0-rc2 #1 Not tainted
> [ 162.339797] --------------------------------
> [ 162.340725] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-R} usage.
> [ 162.342030] swapper/0/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
> [ 162.343061] (&journal->j_state_lock){+?++}, at: [<000000003b9c3e4b>] jbd2_trans_will_send_data_barrier+0x44/0xc8
> [ 162.353187] {HARDIRQ-ON-W} state was registered at:
> [ 162.354433] lock_acquire+0x48/0x68
> [ 162.358640] _raw_write_lock+0x3c/0x50
> [ 162.360716] ext4_init_journal_params.isra.6+0x40/0xa0...
2005 Apr 22
2
[2.6 patch] fs/jbd/: possible cleanups
...void __journal_abort_soft (journal_t *journal, int errno)
{
if (journal->j_flags & JFS_ABORT)
return;
@@ -1601,6 +1599,7 @@
* An error must be cleared or Acked to take a FS out of readonly
* mode.
*/
+#if 0
void journal_ack_err(journal_t *journal)
{
spin_lock(&journal->j_state_lock);
@@ -1608,6 +1607,7 @@
journal->j_flags |= JFS_ACK_ERR;
spin_unlock(&journal->j_state_lock);
}
+#endif /* 0 */
int journal_blocks_per_page(struct inode *inode)
{
@@ -1888,7 +1888,7 @@
static struct proc_dir_entry *proc_jbd_debug;
-int read_jbd_debug(char *page, char **s...
2009 Feb 24
0
[STABLE, 2.6.28.y] jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate()
...t;i_transaction)
goto out;
- journal = inode->i_transaction->t_journal;
+ /* Locks are here just to force reading of recent values, it is
+ * enough that the transaction was not committing before we started
+ * a transaction adding the inode to orphan list */
spin_lock(&journal->j_state_lock);
commit_trans = journal->j_committing_transaction;
spin_unlock(&journal->j_state_lock);
- if (inode->i_transaction == commit_trans) {
- ret = filemap_fdatawrite_range(inode->i_vfs_inode->i_mapping,
+ spin_lock(&journal->j_list_lock);
+ inode_trans = jinode->i_tran...
2009 Mar 20
1
[stable] Linux 2.6.28.8 (ocfs2 build failure)
...t;i_transaction)
goto out;
- journal = inode->i_transaction->t_journal;
+ /* Locks are here just to force reading of recent values, it is
+ * enough that the transaction was not committing before we started
+ * a transaction adding the inode to orphan list */
spin_lock(&journal->j_state_lock);
commit_trans = journal->j_committing_transaction;
spin_unlock(&journal->j_state_lock);
- if (inode->i_transaction == commit_trans) {
- ret = filemap_fdatawrite_range(inode->i_vfs_inode->i_mapping,
+ spin_lock(&journal->j_list_lock);
+ inode_trans = jinode->i_tran...
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
2008 Sep 04
4
[PATCH 0/3] ocfs2: Switch over to JBD2.
ocfs2 currently uses the Journaled Block Device (JBD) for its
journaling. This is a very stable and tested codebase. However, JBD
is limited by architecture to 32bit block numbers. This means an ocfs2
filesystem is limited to 2^32 blocks. With a 4K blocksize, that's 16TB.
People want larger volumes.
Fortunately, there is now JBD2. JBD2 adds 64bit block number support
and some other
2013 Jun 19
1
[PATCH] fs/jbd2: t_updates should increase when start_this_handle() failed in jbd2__journal_restart()
jbd2_journal_restart() would restart a handle. In this function, it
calls start_this_handle(). Before calling start_this_handle()?subtract
1 from transaction->t_updates.
If start_this_handle() succeeds, transaction->t_updates increases by 1
in it. But if start_this_handle() fails, transaction->t_updates does
not increase.
So, when commit the handle's transaction in