<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/btrfs/tree-log.c, branch linux-3.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-04-26T04:19:56Z</updated>
<entry>
<title>Btrfs: make sure nbytes are right after log replay</title>
<updated>2013-04-26T04:19:56Z</updated>
<author>
<name>Josef Bacik</name>
</author>
<published>2013-04-05T20:50:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8fdeb71b5022b4578e3339b861019c5a00c77700'/>
<id>urn:sha1:8fdeb71b5022b4578e3339b861019c5a00c77700</id>
<content type='text'>
commit 4bc4bee4595662d8bff92180d5c32e3313a704b0 upstream.

While trying to track down a tree log replay bug I noticed that fsck was always
complaining about nbytes not being right for our fsynced file.  That is because
the new fsync stuff doesn't wait for ordered extents to complete, so the inodes
nbytes are not necessarily updated properly when we log it.  So to fix this we
need to set nbytes to whatever it is on the inode that is on disk, so when we
replay the extents we can just add the bytes that are being added as we replay
the extent.  This makes it work for the case that we have the wrong nbytes or
the case that we logged everything and nbytes is actually correct.  With this
I'm no longer getting nbytes errors out of btrfsck.

Signed-off-by: Josef Bacik &lt;jbacik@fusionio.com&gt;
Signed-off-by: Chris Mason &lt;chris.mason@fusionio.com&gt;
Signed-off-by: Lingzhu Xiang &lt;lxiang@redhat.com&gt;
Reviewed-by: CAI Qian &lt;caiqian@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Btrfs: run delayed directory updates during log replay</title>
<updated>2012-07-16T16:04:05Z</updated>
<author>
<name>Chris Mason</name>
</author>
<published>2012-07-02T19:29:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dbc904343caccba0ce47a51379c4a743da504a8a'/>
<id>urn:sha1:dbc904343caccba0ce47a51379c4a743da504a8a</id>
<content type='text'>
commit b6305567e7d31b0bec1b8cb9ec0cadd7f7086f5f upstream.

While we are resolving directory modifications in the
tree log, we are triggering delayed metadata updates to
the filesystem btrees.

This commit forces the delayed updates to run so the
replay code can find any modifications done.  It stops
us from crashing because the directory deleltion replay
expects items to be removed immediately from the tree.

Signed-off-by: Chris Mason &lt;chris.mason@fusionio.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Btrfs: avoid sleeping in verify_parent_transid while atomic</title>
<updated>2012-05-06T11:23:47Z</updated>
<author>
<name>Chris Mason</name>
</author>
<published>2012-05-06T11:23:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b9fab919b748c7b39c19ff236ed6c5682c266dde'/>
<id>urn:sha1:b9fab919b748c7b39c19ff236ed6c5682c266dde</id>
<content type='text'>
verify_parent_transid needs to lock the extent range to make
sure no IO is underway, and so it can safely clear the
uptodate bits if our checks fail.

But, a few callers are using it with spinlocks held.  Most
of the time, the generation numbers are going to match, and
we don't want to switch to a blocking lock just for the error
case.  This adds an atomic flag to verify_parent_transid,
and changes it to return EAGAIN if it needs to block to
properly verifiy things.

Signed-off-by: Chris Mason &lt;chris.mason@oracle.com&gt;
</content>
</entry>
<entry>
<title>btrfs: replace many BUG_ONs with proper error handling</title>
<updated>2012-03-22T10:52:54Z</updated>
<author>
<name>Jeff Mahoney</name>
</author>
<published>2012-03-12T15:03:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=79787eaab46121d4713ed03c8fc63b9ec3eaec76'/>
<id>urn:sha1:79787eaab46121d4713ed03c8fc63b9ec3eaec76</id>
<content type='text'>
 btrfs currently handles most errors with BUG_ON. This patch is a work-in-
 progress but aims to handle most errors other than internal logic
 errors and ENOMEM more gracefully.

 This iteration prevents most crashes but can run into lockups with
 the page lock on occasion when the timing "works out."

Signed-off-by: Jeff Mahoney &lt;jeffm@suse.com&gt;
</content>
</entry>
<entry>
<title>btrfs: return void in functions without error conditions</title>
<updated>2012-03-22T00:45:34Z</updated>
<author>
<name>Jeff Mahoney</name>
</author>
<published>2012-03-01T13:56:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=143bede527b054a271053f41bfaca2b57baa9408'/>
<id>urn:sha1:143bede527b054a271053f41bfaca2b57baa9408</id>
<content type='text'>
Signed-off-by: Jeff Mahoney &lt;jeffm@suse.com&gt;
</content>
</entry>
<entry>
<title>btrfs: Fix busyloops in transaction waiting code</title>
<updated>2012-01-26T20:01:11Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2012-01-26T20:01:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6dd70ce4eb7429c2ba6dd9fa46f78a0a2a254038'/>
<id>urn:sha1:6dd70ce4eb7429c2ba6dd9fa46f78a0a2a254038</id>
<content type='text'>
wait_log_commit() and wait_for_writer() were using slightly different
conditions for deciding whether they should call schedule() and whether they
should continue in the wait loop. Thus it could happen that we busylooped when
the first condition was not true while the second one was. That is burning CPU
cycles needlessly and is deadly on UP machines...

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Chris Mason &lt;chris.mason@oracle.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-chris' of git://git.jan-o-sch.net/btrfs-unstable into integration</title>
<updated>2012-01-16T20:26:31Z</updated>
<author>
<name>Chris Mason</name>
</author>
<published>2012-01-16T20:26:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9785dbdf265ddc47d5c88267d89a97648c0dc14b'/>
<id>urn:sha1:9785dbdf265ddc47d5c88267d89a97648c0dc14b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Btrfs: mark delayed refs as for cow</title>
<updated>2011-12-22T15:22:27Z</updated>
<author>
<name>Arne Jansen</name>
</author>
<published>2011-09-12T13:26:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=66d7e7f09f77456fe68683247d77721032a00ee5'/>
<id>urn:sha1:66d7e7f09f77456fe68683247d77721032a00ee5</id>
<content type='text'>
Add a for_cow parameter to add_delayed_*_ref and pass the appropriate value
from every call site. The for_cow parameter will later on be used to
determine if a ref will change anything with respect to qgroups.

Delayed refs coming from relocation are always counted as for_cow, as they
don't change subvol quota.

Also pass in the fs_info for later use.

btrfs_find_all_roots() will use this as an optimization, as changes that are
for_cow will not change anything with respect to which root points to a
certain leaf. Thus, we don't need to add the current sequence number to
those delayed refs.

Signed-off-by: Arne Jansen &lt;sensille@gmx.net&gt;
Signed-off-by: Jan Schmidt &lt;list.btrfs@jan-o-sch.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs</title>
<updated>2011-11-07T04:03:41Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2011-11-07T04:03:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6a6662ced4153f6dbcfc40d7225c3cc45416039c'/>
<id>urn:sha1:6a6662ced4153f6dbcfc40d7225c3cc45416039c</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (114 commits)
  Btrfs: check for a null fs root when writing to the backup root log
  Btrfs: fix race during transaction joins
  Btrfs: fix a potential btrfs_bio leak on scrub fixups
  Btrfs: rename btrfs_bio multi -&gt; bbio for consistency
  Btrfs: stop leaking btrfs_bios on readahead
  Btrfs: stop the readahead threads on failed mount
  Btrfs: fix extent_buffer leak in the metadata IO error handling
  Btrfs: fix the new inspection ioctls for 32 bit compat
  Btrfs: fix delayed insertion reservation
  Btrfs: ClearPageError during writepage and clean_tree_block
  Btrfs: be smarter about committing the transaction in reserve_metadata_bytes
  Btrfs: make a delayed_block_rsv for the delayed item insertion
  Btrfs: add a log of past tree roots
  btrfs: separate superblock items out of fs_info
  Btrfs: use the global reserve when truncating the free space cache inode
  Btrfs: release metadata from global reserve if we have to fallback for unlink
  Btrfs: make sure to flush queued bios if write_cache_pages waits
  Btrfs: fix extent pinning bugs in the tree log
  Btrfs: make sure btrfs_remove_free_space doesn't leak EAGAIN
  Btrfs: don't wait as long for more batches during SSD log commit
  ...
</content>
</entry>
<entry>
<title>btrfs: separate superblock items out of fs_info</title>
<updated>2011-11-06T08:04:01Z</updated>
<author>
<name>David Sterba</name>
</author>
<published>2011-04-13T13:41:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6c41761fc6efe1503103a1afe03a6635c0b5d4ec'/>
<id>urn:sha1:6c41761fc6efe1503103a1afe03a6635c0b5d4ec</id>
<content type='text'>
fs_info has now ~9kb, more than fits into one page. This will cause
mount failure when memory is too fragmented. Top space consumers are
super block structures super_copy and super_for_commit, ~2.8kb each.
Allocate them dynamically. fs_info will be ~3.5kb. (measured on x86_64)

Add a wrapper for freeing fs_info and all of it's dynamically allocated
members.

Signed-off-by: David Sterba &lt;dsterba@suse.cz&gt;
</content>
</entry>
</feed>
