<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/jbd2/transaction.c, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-10-28T01:30:04Z</updated>
<entry>
<title>jbd2: Add sanity check for attempts to start handle during umount</title>
<updated>2010-10-28T01:30:04Z</updated>
<author>
<name>Theodore Ts'o</name>
</author>
<published>2010-10-28T01:30:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5c2178e785244341d1e6f2bc3b62f20a337cc44f'/>
<id>urn:sha1:5c2178e785244341d1e6f2bc3b62f20a337cc44f</id>
<content type='text'>
An attempt to modify the file system during the call to
jbd2_destroy_journal() can lead to a system lockup.  So add some
checking to make it much more obvious when this happens to and to
determine where the offending code is located.

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: clean up compiler warning in start_this_handle()</title>
<updated>2010-08-09T21:28:38Z</updated>
<author>
<name>Theodore Ts'o</name>
</author>
<published>2010-08-09T21:28:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6d0bf00512b3b1b5d09d9a44919983eec1cc6fd0'/>
<id>urn:sha1:6d0bf00512b3b1b5d09d9a44919983eec1cc6fd0</id>
<content type='text'>
Fix the compiler warning:

  fs/jbd2/transaction.c: In function ‘start_this_handle’:
  fs/jbd2/transaction.c:98: warning: unused variable ‘ts’

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;

</content>
</entry>
<entry>
<title>Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4</title>
<updated>2010-08-07T20:03:53Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2010-08-07T20:03:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=09dc942c2a767e2d298f1cc9294bc19c7d7208c5'/>
<id>urn:sha1:09dc942c2a767e2d298f1cc9294bc19c7d7208c5</id>
<content type='text'>
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits)
  ext4: Adding error check after calling ext4_mb_regular_allocator()
  ext4: Fix dirtying of journalled buffers in data=journal mode
  ext4: re-inline ext4_rec_len_(to|from)_disk functions
  jbd2: Remove t_handle_lock from start_this_handle()
  jbd2: Change j_state_lock to be a rwlock_t
  jbd2: Use atomic variables to avoid taking t_handle_lock in jbd2_journal_stop
  ext4: Add mount options in superblock
  ext4: force block allocation on quota_off
  ext4: fix freeze deadlock under IO
  ext4: drop inode from orphan list if ext4_delete_inode() fails
  ext4: check to make make sure bd_dev is set before dereferencing it
  jbd2: Make barrier messages less scary
  ext4: don't print scary messages for allocation failures post-abort
  ext4: fix EFBIG edge case when writing to large non-extent file
  ext4: fix ext4_get_blocks references
  ext4: Always journal quota file modifications
  ext4: Fix potential memory leak in ext4_fill_super
  ext4: Don't error out the fs if the user tries to make a file too big
  ext4: allocate stripe-multiple IOs on stripe boundaries
  ext4: move aio completion after unwritten extent conversion
  ...

Fix up conflicts in fs/ext4/inode.c as per Ted.

Fix up xfs conflicts as per earlier xfs merge.
</content>
</entry>
<entry>
<title>jbd2: Remove t_handle_lock from start_this_handle()</title>
<updated>2010-08-04T01:38:29Z</updated>
<author>
<name>Theodore Ts'o</name>
</author>
<published>2010-08-04T01:38:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8dd420466c7bfc459fa04680bd5690bfc41a4553'/>
<id>urn:sha1:8dd420466c7bfc459fa04680bd5690bfc41a4553</id>
<content type='text'>
This should remove the last exclusive lock from start_this_handle(),
so that we should now be able to start multiple transactions at the
same time on large SMP systems.

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2: Change j_state_lock to be a rwlock_t</title>
<updated>2010-08-04T01:35:12Z</updated>
<author>
<name>Theodore Ts'o</name>
</author>
<published>2010-08-04T01:35:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a931da6ac9331a6c80dd91c199105806f2336188'/>
<id>urn:sha1:a931da6ac9331a6c80dd91c199105806f2336188</id>
<content type='text'>
Lockstat reports have shown that j_state_lock is a major source of
lock contention, especially on systems with more than 4 CPU cores.  So
change it to be a read/write spinlock.

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2: Use atomic variables to avoid taking t_handle_lock in jbd2_journal_stop</title>
<updated>2010-08-02T12:43:25Z</updated>
<author>
<name>Theodore Ts'o</name>
</author>
<published>2010-08-02T12:43:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a51dca9cd3bb4ec5a05bfb6feabf024a5c808a37'/>
<id>urn:sha1:a51dca9cd3bb4ec5a05bfb6feabf024a5c808a37</id>
<content type='text'>
By using an atomic_t for t_updates and t_outstanding credits, this
should allow us to not need to take transaction t_handle_lock in
jbd2_journal_stop().

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2: Remove __GFP_NOFAIL from jbd2 layer</title>
<updated>2010-07-27T15:56:05Z</updated>
<author>
<name>Theodore Ts'o</name>
</author>
<published>2010-07-27T15:56:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=47def82672b3ba4e7c5e9a4fe48a556f8684d0d6'/>
<id>urn:sha1:47def82672b3ba4e7c5e9a4fe48a556f8684d0d6</id>
<content type='text'>
__GFP_NOFAIL is going away, so add our own retry loop.  Also add
jbd2__journal_start() and jbd2__journal_restart() which take a gfp
mask, so that file systems can optionally (re)start transaction
handles using GFP_KERNEL.  If they do this, then they need to be
prepared to handle receiving an PTR_ERR(-ENOMEM) error, and be ready
to reflect that error up to userspace.

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2/ocfs2: Fix block checksumming when a buffer is used in several transactions</title>
<updated>2010-07-15T22:17:47Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2010-07-14T05:56:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=13ceef099edd2b70c5a6f3a9ef5d6d97cda2e096'/>
<id>urn:sha1:13ceef099edd2b70c5a6f3a9ef5d6d97cda2e096</id>
<content type='text'>
OCFS2 uses t_commit trigger to compute and store checksum of the just
committed blocks. When a buffer has b_frozen_data, checksum is computed
for it instead of b_data but this can result in an old checksum being
written to the filesystem in the following scenario:

1) transaction1 is opened
2) handle1 is opened
3) journal_access(handle1, bh)
    - This sets jh-&gt;b_transaction to transaction1
4) modify(bh)
5) journal_dirty(handle1, bh)
6) handle1 is closed
7) start committing transaction1, opening transaction2
8) handle2 is opened
9) journal_access(handle2, bh)
    - This copies off b_frozen_data to make it safe for transaction1 to commit.
      jh-&gt;b_next_transaction is set to transaction2.
10) jbd2_journal_write_metadata() checksums b_frozen_data
11) the journal correctly writes b_frozen_data to the disk journal
12) handle2 is closed
    - There was no dirty call for the bh on handle2, so it is never queued for
      any more journal operation
13) Checkpointing finally happens, and it just spools the bh via normal buffer
writeback.  This will write b_data, which was never triggered on and thus
contains a wrong (old) checksum.

This patch fixes the problem by calling the trigger at the moment data is
frozen for journal commit - i.e., either when b_frozen_data is created by
do_get_write_access or just before we write a buffer to the log if
b_frozen_data does not exist. We also rename the trigger to t_frozen as
that better describes when it is called.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Mark Fasheh &lt;mfasheh@suse.com&gt;
Signed-off-by: Joel Becker &lt;joel.becker@oracle.com&gt;
</content>
</entry>
<entry>
<title>jbd2: Improve scalability by not taking j_state_lock in jbd2_journal_stop()</title>
<updated>2010-05-16T09:00:00Z</updated>
<author>
<name>Theodore Ts'o</name>
</author>
<published>2010-05-16T09:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c35a56a090eacefca07afeb994029b57d8dd8025'/>
<id>urn:sha1:c35a56a090eacefca07afeb994029b57d8dd8025</id>
<content type='text'>
One of the most contended locks in the jbd2 layer is j_state_lock when
running dbench.  This is especially true if using the real-time kernel
with its "sleeping spinlocks" patch that replaces spinlocks with
priority inheriting mutexes --- but it also shows up on large SMP
benchmarks.

Thanks to John Stultz for pointing this out.

Reviewed by Mingming Cao and Jan Kara.

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2: delay discarding buffers in journal_unmap_buffer</title>
<updated>2010-02-15T21:35:42Z</updated>
<author>
<name>dingdinghua</name>
</author>
<published>2010-02-15T21:35:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ba869023eac8354b17acdcff82b851ea8e7b1809'/>
<id>urn:sha1:ba869023eac8354b17acdcff82b851ea8e7b1809</id>
<content type='text'>
Delay discarding buffers in journal_unmap_buffer until
we know that "add to orphan" operation has definitely been
committed, otherwise the log space of committing transation
may be freed and reused before truncate get committed, updates
may get lost if crash happens.

Signed-off-by: dingdinghua &lt;dingdinghua@nrchpc.ac.cn&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
</feed>
