<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/gfs2/dir.c, branch linux-2.6.28.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-04-10T08:55:26Z</updated>
<entry>
<title>[GFS2] fix GFP_KERNEL misuses</title>
<updated>2008-04-10T08:55:26Z</updated>
<author>
<name>Josef Bacik</name>
</author>
<published>2008-04-09T13:33:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=16c5f06f15ad4e5a5d6e90b78ffb1ac14319e445'/>
<id>urn:sha1:16c5f06f15ad4e5a5d6e90b78ffb1ac14319e445</id>
<content type='text'>
There are several places where GFP_KERNEL allocations happen under a glock,
which will result in hangs if we're under memory pressure and go to re-enter the
fs in order to flush stuff out.  This patch changes the culprits to GFS_NOFS to
keep this problem from happening.  Thank you,

Signed-off-by: Josef Bacik &lt;jbacik@redhat.com&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;

</content>
</entry>
<entry>
<title>[GFS2] possible null pointer dereference fixup</title>
<updated>2008-03-31T09:41:28Z</updated>
<author>
<name>Cyrill Gorcunov</name>
</author>
<published>2008-03-03T18:54:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=182fe5abd8ebbb3a00c1be91f44e4783e139918c'/>
<id>urn:sha1:182fe5abd8ebbb3a00c1be91f44e4783e139918c</id>
<content type='text'>
gfs2_alloc_get may fail so we have to check it to prevent
NULL pointer dereference.

Signed-off-by: Cyrill Gorcunov &lt;gorcunov@gamil.com&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Allow bmap to allocate extents</title>
<updated>2008-03-31T09:41:14Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2008-02-22T16:09:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9b8c81d1de49943ec69d157234b8981008c30d31'/>
<id>urn:sha1:9b8c81d1de49943ec69d157234b8981008c30d31</id>
<content type='text'>
We've supported mapping of extents when no block allocation is required
for some time. This patch extends that to mapping of extents when an
allocation has been requested. In that case we try to allocate as many
blocks as are requested, but we might return fewer in case there is
something preventing us from returning the complete amount (e.g. an
already allocated block is in the way).

Currently the only code path which can actually request multiple data
blocks in a single bmap call is the page_mkwrite path and even then it
only happens if there are multiple blocks per page. What this patch does
do however, is merge the allocation requests for metadata (growing the
metadata tree in either height or depth) with the allocation of the data
blocks in the case that both are needed. This results in lower overheads
even in the single block allocation case.

The one thing which we can't handle here at the moment is unstuffing. I
would like to be able to do that, but the problem which arises is that
in order to unstuff one has to get a locked page from the page cache
which results in locking problems in the (usual) case that the caller is
holding the page lock on the page it wishes to map. So that case will
have to be addressed in future patches.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] be*_add_cpu conversion</title>
<updated>2008-03-31T09:41:03Z</updated>
<author>
<name>Marcin Slusarz</name>
</author>
<published>2008-02-12T23:06:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bb16b342b2e2c83fa47dbb042400db91b748ded7'/>
<id>urn:sha1:bb16b342b2e2c83fa47dbb042400db91b748ded7</id>
<content type='text'>
replace all:
big_endian_variable = cpu_to_beX(beX_to_cpu(big_endian_variable) +
					expression_in_cpu_byteorder);
with:
	beX_add_cpu(&amp;big_endian_variable, expression_in_cpu_byteorder);
generated with semantic patch

Signed-off-by: Marcin Slusarz &lt;marcin.slusarz@gmail.com&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Eliminate (almost) duplicate field from gfs2_inode</title>
<updated>2008-03-31T09:40:55Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2008-02-12T14:17:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=77658aad226866fb94097236d14d41a88aaab2ec'/>
<id>urn:sha1:77658aad226866fb94097236d14d41a88aaab2ec</id>
<content type='text'>
The blocks counter is almost a duplicate of the i_blocks
field in the VFS inode. The only difference is that i_blocks
can be only 32bits long for 32bit arch without large single file
support. Since GFS2 doesn't handle the non-large single file
case (for 32 bit anyway) this adds a new config dependency on
64BIT || LSF. This has always been the case, however we've never
explicitly said so before.

Even if we do add support for the non-LSF case, we will still
not require this field to be duplicated since we will not be
able to access oversized files anyway.

So the net result of all this is that we shave 8 bytes from a gfs2_inode
and get our config deps correct.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Add extent allocation to block allocator</title>
<updated>2008-03-31T09:40:47Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2008-02-06T10:11:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b45e41d7d56dfef1ae9e02e6c59990066ba82e5c'/>
<id>urn:sha1:b45e41d7d56dfef1ae9e02e6c59990066ba82e5c</id>
<content type='text'>
Rather than having to allocate a single block at a time, this patch
allows the block allocator to allocate an extent. Since there is
no difference (so far as the block allocator is concerned) between
data blocks and indirect blocks, it is posible to allocate a single
extent and for the caller to unrevoke just the blocks required
for indirect blocks.

Currently the only bit of GFS2 to make use of this feature is the
build height function. The intention is that gfs2_block_map will
be changed to make use of this feature in future patches.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Merge gfs2_alloc_meta and gfs2_alloc_data</title>
<updated>2008-03-31T09:40:45Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2008-02-01T14:52:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1639431a3f57b43da1e15e9268a1d691ac01ba26'/>
<id>urn:sha1:1639431a3f57b43da1e15e9268a1d691ac01ba26</id>
<content type='text'>
Thanks to the preceeding patches, the only difference between
these two functions is their name. We can thus merge them
and call the new function gfs2_alloc_block to reflect the
fact that it can allocate either kind of block.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Update gfs2_trans_add_unrevoke to accept extents</title>
<updated>2008-03-31T09:40:42Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2008-02-01T13:16:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5731be53e3d82aedd06e02574f833a57b07a08d2'/>
<id>urn:sha1:5731be53e3d82aedd06e02574f833a57b07a08d2</id>
<content type='text'>
By adding an extra argument to gfs2_trans_add_unrevoke we can now
specify an extent length of blocks to unrevoke. This means that
we only need to make one pass through the list for each extent
rather than each block. Currently the only extent length which
is used is 1, but that will change in the future.

Also gfs2_trans_add_unrevoke is removed from gfs2_alloc_meta
since its the only difference between this and gfs2_alloc_data
which is left. This will allow a future patch to merge these
two functions into one (i.e. one call to allocate both data
and metadata in a single extent in the future).

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Shrink &amp; rename di_depth</title>
<updated>2008-03-31T09:40:31Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2008-02-01T09:23:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9a0045088d888c9c539c8c626a366cb52c0fbdab'/>
<id>urn:sha1:9a0045088d888c9c539c8c626a366cb52c0fbdab</id>
<content type='text'>
This patch forms a pair with the previous patch which shrunk
di_height. Like that patch di_depth is renamed i_depth and moved
into struct gfs2_inode directly. Also the field goes from 16 bits
to 8 bits since it is also limited to a max value which is rather
small (17 in this case). In addition we also now validate the field
against this maximum value when its read in.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
<entry>
<title>[GFS2] Get rid of unneeded parameter in gfs2_rlist_alloc</title>
<updated>2008-03-31T09:39:49Z</updated>
<author>
<name>Bob Peterson</name>
</author>
<published>2008-01-28T17:13:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fe6c991c52a0dd07d4a19d392fd65048226cb1bc'/>
<id>urn:sha1:fe6c991c52a0dd07d4a19d392fd65048226cb1bc</id>
<content type='text'>
This patch removed the unnecessary parameter from function
gfs2_rlist_alloc.  The parameter was always passed in as 0.

Signed-off-by: Bob Peterson &lt;rpeterso@redhat.com&gt;
Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
</content>
</entry>
</feed>
