<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/fs/xfs/xfs_itable.h, branch dev</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2014-11-06T21:30:30+00:00</updated>
<entry>
<title>xfs: bulkstat chunk formatting cursor is broken</title>
<updated>2014-11-06T21:30:30+00:00</updated>
<author>
<name>Dave Chinner</name>
<email>dchinner@redhat.com</email>
</author>
<published>2014-11-06T21:30:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=bf4a5af20d25ecc8876978ad34b8db83b4235f3c'/>
<id>urn:sha1:bf4a5af20d25ecc8876978ad34b8db83b4235f3c</id>
<content type='text'>
The xfs_bulkstat_agichunk formatting cursor takes buffer values from
the main loop and passes them via the structure to the chunk
formatter, and the writes the changed values back into the main loop
local variables. Unfortunately, this complex dance is full of corner
cases that aren't handled correctly.

The biggest problem is that it is double handling the information in
both the main loop and the chunk formatting function, leading to
inconsistent updates and endless loops where progress is not made.

To fix this, push the struct xfs_bulkstat_agichunk outwards to be
the primary holder of user buffer information. this removes the
double handling in the main loop.

Also, pass the last inode processed by the chunk formatter as a
separate parameter as it purely an output variable and is not
related to the user buffer consumption cursor.

Finally, the chunk formatting code is not shared by anyone, so make
it local to xfs_itable.c.

cc: &lt;stable@vger.kernel.org&gt; # 3.17
Signed-off-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Reviewed-by: Brian Foster &lt;bfoster@redhat.com&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;
</content>
</entry>
<entry>
<title>xfs: introduce xfs_bulkstat_ag_ichunk</title>
<updated>2014-08-04T01:22:31+00:00</updated>
<author>
<name>Jie Liu</name>
<email>jeff.liu@oracle.com</email>
</author>
<published>2014-08-04T01:22:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=1e773c4989d2dfe08332b4c18f7e1d7ad633015c'/>
<id>urn:sha1:1e773c4989d2dfe08332b4c18f7e1d7ad633015c</id>
<content type='text'>
Introduce xfs_bulkstat_ag_ichunk() to process inodes in chunk with a
pointer to a formatter function that will iget the inode and fill in
the appropriate structure.

Refactor xfs_bulkstat() with it.

Signed-off-by: Jie Liu &lt;jeff.liu@oracle.com&gt;
Reviewed-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;

</content>
</entry>
<entry>
<title>xfs: remove xfs_bulkstat_single</title>
<updated>2014-07-24T02:07:15+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2014-07-24T02:07:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=d716f8eedb143387afd35d337327090b8348159e'/>
<id>urn:sha1:d716f8eedb143387afd35d337327090b8348159e</id>
<content type='text'>
From: Christoph Hellwig &lt;hch@lst.de&gt;

xfs_bukstat_one doesn't have any failure case that would go away when
called through xfs_bulkstat, so remove the fallback and the now unessecary
xfs_bulkstat_single function.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Jie Liu &lt;jeff.liu@oracle.com&gt;
Signed-off-by: Jie Liu &lt;jeff.liu@oracle.com&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;

</content>
</entry>
<entry>
<title>xfs: remove block number from inode lookup code</title>
<updated>2010-06-24T01:35:17+00:00</updated>
<author>
<name>Dave Chinner</name>
<email>dchinner@redhat.com</email>
</author>
<published>2010-06-24T01:35:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=7b6259e7a83647948fa33a736cc832310c8d85aa'/>
<id>urn:sha1:7b6259e7a83647948fa33a736cc832310c8d85aa</id>
<content type='text'>
The block number comes from bulkstat based inode lookups to shortcut
the mapping calculations. We ar enot able to trust anything from
bulkstat, so drop the block number as well so that the correct
lookups and mappings are always done.

Signed-off-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>xfs: always use iget in bulkstat</title>
<updated>2010-06-23T08:11:11+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2010-06-23T08:11:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=7dce11dbac54fce777eea0f5fb25b2694ccd7900'/>
<id>urn:sha1:7dce11dbac54fce777eea0f5fb25b2694ccd7900</id>
<content type='text'>
The non-coherent bulkstat versionsthat look directly at the inode
buffers causes various problems with performance optimizations that
make increased use of just logging inodes.  This patch makes bulkstat
always use iget, which should be fast enough for normal use with the
radix-tree based inode cache introduced a while ago.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Dave Chinner &lt;dchinner@redhat.com&gt;
</content>
</entry>
<entry>
<title>xfs: add more statics &amp; drop some unused functions</title>
<updated>2009-08-31T19:46:20+00:00</updated>
<author>
<name>Eric Sandeen</name>
<email>sandeen@sandeen.net</email>
</author>
<published>2009-07-02T05:09:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=d96f8f891f69ac1dc8c7bd82e27525de220c04e1'/>
<id>urn:sha1:d96f8f891f69ac1dc8c7bd82e27525de220c04e1</id>
<content type='text'>
A lot more functions could be made static, but they need
forward declarations; this does some easy ones, and also
found a few unused functions in the process.

Signed-off-by: Eric Sandeen &lt;sandeen@sandeen.net&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Felix Blyakher &lt;felixb@sgi.com&gt;
</content>
</entry>
<entry>
<title>[XFS] Fix xfs_bulkstat_one size checks &amp; error handling</title>
<updated>2008-12-02T06:16:03+00:00</updated>
<author>
<name>sandeen@sandeen.net</name>
<email>sandeen@sandeen.net</email>
</author>
<published>2008-11-26T03:20:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=65fbaf2489c667bf79ae1f20403f30c66568d445'/>
<id>urn:sha1:65fbaf2489c667bf79ae1f20403f30c66568d445</id>
<content type='text'>
The 32-bit xfs_blkstat_one handler was failing because
a size check checked whether the remaining (32-bit)
user buffer was less than the (64-bit) bulkstat buffer,
and failed with ENOMEM if so.  Move this check
into the respective handlers so that they check the
correct sizes.

Also, the formatters were returning negative errors
or positive bytes copied; this was odd in the positive
error value world of xfs, and handled wrong by at least
some of the callers, which treated the bytes returned
as an error value.  Move the bytes-used assignment
into the formatters.

Signed-off-by: Eric Sandeen &lt;sandeen@sandeen.net&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Lachlan McIlroy &lt;lachlan@sgi.com&gt;
</content>
</entry>
<entry>
<title>[XFS] Make the bulkstat_one compat ioctl handling more sane</title>
<updated>2008-12-02T06:15:36+00:00</updated>
<author>
<name>sandeen@sandeen.net</name>
<email>sandeen@sandeen.net</email>
</author>
<published>2008-11-26T03:20:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=2ee4fa5cb716eba104a4ef8efe159e1007a2aef6'/>
<id>urn:sha1:2ee4fa5cb716eba104a4ef8efe159e1007a2aef6</id>
<content type='text'>
Currently the compat formatter was handled by passing
in "private_data" for the xfs_bulkstat_one formatter,
which was really just another formatter... IMHO this
got confusing.

Instead, just make a new xfs_bulkstat_one_compat
formatter for xfs_bulkstat, and call it via a wrapper.

Also, don't translate the ioctl nrs into their native
counterparts, that just clouds the issue; we're in a
compat handler anyway, just switch on the 32-bit cmds.

Signed-off-by: Eric Sandeen &lt;sandeen@sandeen.net&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Lachlan McIlroy &lt;lachlan@sgi.com&gt;
</content>
</entry>
<entry>
<title>[XFS] Fix XFS_IOC_FSBULKSTAT{,_SINGLE} &amp; XFS_IOC_FSINUMBERS in compat mode</title>
<updated>2007-07-14T05:42:50+00:00</updated>
<author>
<name>Michal Marek</name>
<email>mmarek@suse.cz</email>
</author>
<published>2007-07-11T01:10:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=faa63e9584df41020440756b8b90b7b63f95e4f6'/>
<id>urn:sha1:faa63e9584df41020440756b8b90b7b63f95e4f6</id>
<content type='text'>
* 32bit struct xfs_fsop_bulkreq has different size and layout of
members, no matter the alignment. Move the code out of the #else
branch (why was it there in the first place?). Define _32 variants of
the ioctl constants.
* 32bit struct xfs_bstat is different because of time_t and on
i386 because of different padding. Make xfs_bulkstat_one() accept a
custom "output formatter" in the private_data argument which takes care
of the xfs_bulkstat_one_compat() that takes care of the different
layout in the compat case.
* i386 struct xfs_inogrp has different padding.
Add a similar "output formatter" mecanism to xfs_inumbers().

SGI-PV: 967354
SGI-Modid: xfs-linux-melb:xfs-kern:29102a

Signed-off-by: Michal Marek &lt;mmarek@suse.cz&gt;
Signed-off-by: David Chinner &lt;dgc@sgi.com&gt;
Signed-off-by: Tim Shimmin &lt;tes@sgi.com&gt;
</content>
</entry>
<entry>
<title>[XFS] pv 956241, author: nathans, rv: vapo - make ino validation checks</title>
<updated>2006-09-28T01:06:15+00:00</updated>
<author>
<name>Vlad Apostolov</name>
<email>vapo@sgi.com</email>
</author>
<published>2006-09-28T01:06:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=6f1f21684078884b62cfff2ea80a1a6c07f79824'/>
<id>urn:sha1:6f1f21684078884b62cfff2ea80a1a6c07f79824</id>
<content type='text'>
consistent in bulkstat

SGI-PV: 956241
SGI-Modid: xfs-linux-melb:xfs-kern:26984a

Signed-off-by: Vlad Apostolov &lt;vapo@sgi.com&gt;
Signed-off-by: Tim Shimmin &lt;tes@sgi.com&gt;
</content>
</entry>
</feed>
