<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/gfs2/aops.c, branch linux-3.5.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.5.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.5.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-05-02T08:14:36Z</updated>
<entry>
<title>GFS2: eliminate log elements and simplify</title>
<updated>2012-05-02T08:14:36Z</updated>
<author>
<name>Bob Peterson</name>
</author>
<published>2012-05-01T16:00:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c0752aa7e4d48cc19e167ccb0092bea8e5b6ca3a'/>
<id>urn:sha1:c0752aa7e4d48cc19e167ccb0092bea8e5b6ca3a</id>
<content type='text'>
This patch eliminates the gfs2_log_element data structure and
rolls its two components into the gfs2_bufdata. This makes the code
easier to understand and makes it easier to migrate to a rbtree
to keep the list sorted.

Signed-off-by: Bob Peterson &lt;rpeterso@redhat.com&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;

</content>
</entry>
<entry>
<title>GFS2: Remove unused argument from gfs2_internal_read</title>
<updated>2012-04-24T15:44:37Z</updated>
<author>
<name>Andrew Price</name>
</author>
<published>2012-04-16T15:40:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4306629e1c0fd098d52f499e5a60aaa03e30df0d'/>
<id>urn:sha1:4306629e1c0fd098d52f499e5a60aaa03e30df0d</id>
<content type='text'>
gfs2_internal_read accepts an unused ra_state argument, left over from
when we did readahead on the rindex. Since there are currently no plans
to add back this readahead, this patch removes the ra_state parameter
and updates the functions which call gfs2_internal_read accordingly.

Signed-off-by: Andrew Price &lt;anprice@redhat.com&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Remove bd_list_tr</title>
<updated>2012-04-24T15:44:36Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2012-04-16T15:40:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c50b91c4bd511dfe844e2aa7be429b6b88406353'/>
<id>urn:sha1:c50b91c4bd511dfe844e2aa7be429b6b88406353</id>
<content type='text'>
This is another clean up in the logging code. This per-transaction
list was largely unused. Its main function was to ensure that the
number of buffers in a transaction was correct, however that counter
was only used to check the number of buffers in the bd_list_tr, plus
an assert at the end of each transaction. With the assert now changed
to use the calculated buffer counts, we can remove both bd_list_tr and
its associated counter.

This should make the code easier to understand as well as shrinking
a couple of structures.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: make function gfs2_page_add_databufs static</title>
<updated>2012-04-24T15:44:28Z</updated>
<author>
<name>Bob Peterson</name>
</author>
<published>2012-04-11T16:58:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b120193e360f6c22b0c9424c928f2df40ba0ffdb'/>
<id>urn:sha1:b120193e360f6c22b0c9424c928f2df40ba0ffdb</id>
<content type='text'>
This patch makes function gfs2_page_add_databufs static.

Signed-off-by: Bob Peterson &lt;rpeterso@redhat.com&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Allow caching of rindex glock</title>
<updated>2012-04-10T12:49:53Z</updated>
<author>
<name>Bob Peterson</name>
</author>
<published>2012-04-10T12:56:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ca9248d8337d525c2d2b26a1d8314478d15707fb'/>
<id>urn:sha1:ca9248d8337d525c2d2b26a1d8314478d15707fb</id>
<content type='text'>
This patch allows caching of the rindex glock. We were previously
setting the GL_NOCACHE bit when the glock was released. That forced
the rindex inode to be invalidated, which caused us to re-read
rindex at the next access. However, it caused the glock to be
unnecessarily bounced around the cluster. This patch allows
the glock to remain cached, but it still causes the rindex to be
re-read once it has been written to by gfs2_grow.

Ben and I have tested single-node gfs2_grow cases and I've tested
clustered gfs2_grow cases on my four-node cluster.

Signed-off-by: Bob Peterson &lt;rpeterso@redhat.com&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>gfs2: remove the second argument of k[un]map_atomic()</title>
<updated>2012-03-20T13:48:23Z</updated>
<author>
<name>Cong Wang</name>
</author>
<published>2011-11-25T15:14:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d93492855ff307ce9d699e36d966af3420b80bb3'/>
<id>urn:sha1:d93492855ff307ce9d699e36d966af3420b80bb3</id>
<content type='text'>
Signed-off-by: Cong Wang &lt;amwang@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: decouple quota allocations from block allocations</title>
<updated>2011-11-22T10:25:21Z</updated>
<author>
<name>Bob Peterson</name>
</author>
<published>2011-11-21T18:36:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=564e12b1157215171e7f3af5b70611ec7154327c'/>
<id>urn:sha1:564e12b1157215171e7f3af5b70611ec7154327c</id>
<content type='text'>
This patch separates the code pertaining to allocations into two
parts: quota-related information and block reservations.
This patch also moves all the block reservation structure allocations to
function gfs2_inplace_reserve to simplify the code, and moves
the frees to function gfs2_inplace_release.

Signed-off-by: Bob Peterson &lt;rpeterso@redhat.com&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;

</content>
</entry>
<entry>
<title>GFS2: Cache the most recently used resource group in the inode</title>
<updated>2011-10-21T11:39:34Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2011-09-01T12:31:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=54335b1fca27b84baa75b1f45985d98262003837'/>
<id>urn:sha1:54335b1fca27b84baa75b1f45985d98262003837</id>
<content type='text'>
This means that after the initial allocation for any inode, the
last used resource group is cached in the inode for future use.
This drastically reduces the number of lookups of resource
groups in the common case, and this the contention on that
data structure.

The allocation algorithm is the same as previously, except that we
always check to see if the goal block is within the cached rgrp
first before going to the rbtree to look one up.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Use -&gt;dirty_inode()</title>
<updated>2011-10-21T11:39:26Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2011-08-15T13:20:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ab9bbda0204dfd0e5342562d9979d1241b14ea5f'/>
<id>urn:sha1:ab9bbda0204dfd0e5342562d9979d1241b14ea5f</id>
<content type='text'>
The aim of this patch is to use the newly enhanced -&gt;dirty_inode()
super block operation to deal with atime updates, rather than
piggy backing that code into -&gt;write_inode() as is currently
done.

The net result is a simplification of the code in various places
and a reduction of the number of gfs2_dinode_out() calls since
this is now implied by -&gt;dirty_inode().

Some of the mark_inode_dirty() calls have been moved under glocks
in order to take advantage of then being able to avoid locking in
-&gt;dirty_inode() when we already have suitable locks.

One consequence is that generic_write_end() now correctly deals
with file size updates, so that we do not need a separate check
for that afterwards. This also, indirectly, means that fdatasync
should work correctly on GFS2 - the current code always syncs the
metadata whether it needs to or not.

Has survived testing with postmark (with and without atime) and
also fsx.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>GFS2: Resolve inode eviction and ail list interaction bug</title>
<updated>2011-07-14T07:59:44Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2011-07-14T07:59:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=380f7c65a7eb3288e4b6812acf3474a1de230707'/>
<id>urn:sha1:380f7c65a7eb3288e4b6812acf3474a1de230707</id>
<content type='text'>
This patch contains a few misc fixes which resolve a recently
reported issue. This patch has been a real team effort and has
received a lot of testing.

The first issue is that the ail lock needs to be held over a few
more operations. The lock thats added into gfs2_releasepage() may
possibly be a candidate for replacing with RCU at some future
point, but at this stage we've gone for the obvious fix.

The second issue is that gfs2_write_inode() can end up calling
a glock recursively when called from gfs2_evict_inode() via the
syncing code, so it needs a guard added.

The third issue is that we either need to not truncate the metadata
pages of inodes which have zero link count, but which we cannot
deallocate due to them still being in use by other nodes, or we need
to ensure that those pages have all made it through the journal and
ail lists first. This patch takes the former approach, but the
latter has also been tested and there is nothing to choose between
them performance-wise. So again, we could revise that decision
in the future.

Also, the inode eviction process is now better documented.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
Tested-by: Bob Peterson &lt;rpeterso@redhat.com&gt;
Tested-by: Abhijith Das &lt;adas@redhat.com&gt;
Reported-by: Barry J. Marson &lt;bmarson@redhat.com&gt;
Reported-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
</feed>
