search for: j_state_lock

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