<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/xfs/xfs_vnodeops.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-18T20:08:08Z</updated>
<entry>
<title>xfs: Extend project quotas to support 32bit project ids</title>
<updated>2010-10-18T20:08:08Z</updated>
<author>
<name>Arkadiusz Mi?kiewicz</name>
</author>
<published>2010-09-26T06:10:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6743099ce57a40509a86849a22317ed4b7516911'/>
<id>urn:sha1:6743099ce57a40509a86849a22317ed4b7516911</id>
<content type='text'>
This patch adds support for 32bit project quota identifiers.

On disk format is backward compatible with 16bit projid numbers. projid
on disk is now kept in two 16bit values - di_projid_lo (which holds the
same position as old 16bit projid value) and new di_projid_hi (takes
existing padding) and converts from/to 32bit value on the fly.

xfs_admin (for existing fs), mkfs.xfs (for new fs) needs to be used
to enable PROJID32BIT support.

Signed-off-by: Arkadiusz Miśkiewicz &lt;arekm@maven.pl&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Alex Elder &lt;aelder@sgi.com&gt;
</content>
</entry>
<entry>
<title>xfs: remove xfs_buf wrappers</title>
<updated>2010-10-18T20:08:07Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-06T18:41:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1a1a3e97bad42e92cd2f32e81c396c8ee0bddb28'/>
<id>urn:sha1:1a1a3e97bad42e92cd2f32e81c396c8ee0bddb28</id>
<content type='text'>
Stop having two different names for many buffer functions and use
the more descriptive xfs_buf_* names directly.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Alex Elder &lt;aelder@sgi.com&gt;
</content>
</entry>
<entry>
<title>xfs: remove xfs_cred.h</title>
<updated>2010-10-18T20:08:06Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-06T18:41:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6c77b0ea1bdf85dfd48c20ceb10fd215a95c66e2'/>
<id>urn:sha1:6c77b0ea1bdf85dfd48c20ceb10fd215a95c66e2</id>
<content type='text'>
We're not actually passing around credentials inside XFS for a while
now, so remove all xfs_cred.h with it's cred_t typedef and all
instances of it.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Alex Elder &lt;aelder@sgi.com&gt;
</content>
</entry>
<entry>
<title>xfs: rename xfs_buf_get_nodaddr to be more appropriate</title>
<updated>2010-10-18T20:07:46Z</updated>
<author>
<name>Dave Chinner</name>
</author>
<published>2010-09-24T10:07:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=686865f76e35b28ba7aa6afa19209426f0da6201'/>
<id>urn:sha1:686865f76e35b28ba7aa6afa19209426f0da6201</id>
<content type='text'>
xfs_buf_get_nodaddr() is really used to allocate a buffer that is
uncached. While it is not directly assigned a disk address, the fact
that they are not cached is a more important distinction. With the
upcoming uncached buffer read primitive, we should be consistent
with this disctinction.

While there, make page allocation in xfs_buf_get_nodaddr() safe
against memory reclaim re-entrancy into the filesystem by allowing
a flags parameter to be passed.

Signed-off-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Alex Elder &lt;aelder@sgi.com&gt;
</content>
</entry>
<entry>
<title>xfs: don't use vfs writeback for pure metadata modifications</title>
<updated>2010-10-18T20:07:45Z</updated>
<author>
<name>Dave Chinner</name>
</author>
<published>2010-09-28T02:27:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dcd79a1423f64ee0184629874805c3ac40f3a2c5'/>
<id>urn:sha1:dcd79a1423f64ee0184629874805c3ac40f3a2c5</id>
<content type='text'>
Under heavy multi-way parallel create workloads, the VFS struggles
to write back all the inodes that have been changed in age order.
The bdi flusher thread becomes CPU bound, spending 85% of it's time
in the VFS code, mostly traversing the superblock dirty inode list
to separate dirty inodes old enough to flush.

We already keep an index of all metadata changes in age order - in
the AIL - and continued log pressure will do age ordered writeback
without any extra overhead at all. If there is no pressure on the
log, the xfssyncd will periodically write back metadata in ascending
disk address offset order so will be very efficient.

Hence we can stop marking VFS inodes dirty during transaction commit
or when changing timestamps during transactions. This will keep the
inodes in the superblock dirty list to those containing data or
unlogged metadata changes.

However, the timstamp changes are slightly more complex than this -
there are a couple of places that do unlogged updates of the
timestamps, and the VFS need to be informed of these. Hence add a
new function xfs_trans_ichgtime() for transactional changes,
and leave xfs_ichgtime() for the non-transactional changes.

Signed-off-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Reviewed-by: Alex Elder &lt;aelder@sgi.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>xfs: Introduce XFS_IOC_ZERO_RANGE</title>
<updated>2010-10-18T20:07:25Z</updated>
<author>
<name>Dave Chinner</name>
</author>
<published>2010-08-24T02:02:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=447223520520b17d3b6d0631aa4838fbaf8eddb4'/>
<id>urn:sha1:447223520520b17d3b6d0631aa4838fbaf8eddb4</id>
<content type='text'>
XFS_IOC_ZERO_RANGE is the equivalent of an atomic XFS_IOC_UNRESVSP/
XFS_IOC_RESVSP call pair. It enabled ranges of written data to be
turned into zeroes without requiring IO or having to free and
reallocate the extents in the range given as would occur if we had
to punch and then preallocate them separately.  This enables
applications to zero parts of files very quickly without changing
the layout of the files in any way.

Signed-off-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>xfs: prevent 32bit overflow in space reservation</title>
<updated>2010-09-03T02:19:33Z</updated>
<author>
<name>Dave Chinner</name>
</author>
<published>2010-09-03T02:19:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=72656c46f50b8dfe50e15793692982e636e3df20'/>
<id>urn:sha1:72656c46f50b8dfe50e15793692982e636e3df20</id>
<content type='text'>
If we attempt to preallocate more than 2^32 blocks of space in a
single syscall, the transaction block reservation will overflow
leading to a hangs in the superblock block accounting code. This
is trivially reproduced with xfs_io. Fix the problem by capping the
allocation reservation to the maximum number of blocks a single
xfs_bmapi() call can allocate (2^21 blocks).

Signed-off-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>xfs: new truncate sequence</title>
<updated>2010-08-09T20:47:42Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-06-14T09:17:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fa9b227e9019ebaeeb06224ba531a490f91144b3'/>
<id>urn:sha1:fa9b227e9019ebaeeb06224ba531a490f91144b3</id>
<content type='text'>
Convert XFS to the new truncate sequence.  We still can have errors after
updating the file size in xfs_setattr, but these are real I/O errors and lead
to a transaction abort and filesystem shutdown, so they are not an issue.

Errors from -&gt;write_begin and write_end can now be handled correctly because
we can actually get rid of the delalloc extents while previous the buffer
state was stipped in block_invalidatepage.

There is still no error handling for -&gt;direct_IO, because doing so will need
some major restructuring given that we only have the iolock shared and do not
hold i_mutex at all.  Fortunately leaving the normally allocated blocks behind
there is not a major issue and this will get cleaned up by xfs_free_eofblock
later.

Note: the patch is against Al's vfs.git tree as that contains the nessecary
preparations.  I'd prefer to get it applied there so that we can get some
testing in linux-next.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>xfs: fix unsigned underflow in xfs_free_eofblocks</title>
<updated>2010-07-26T18:16:50Z</updated>
<author>
<name>Kulikov Vasiliy</name>
</author>
<published>2010-07-20T07:54:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3f34885cd7c6a3f4deea48e3bbc704d91d5704f4'/>
<id>urn:sha1:3f34885cd7c6a3f4deea48e3bbc704d91d5704f4</id>
<content type='text'>
map_len is unsigned. Checking map_len &lt;= 0 is buggy when it should be
below zero. So, check exact expression instead of map_len.

Signed-off-by: Kulikov Vasiliy &lt;segooon@gmail.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;
</content>
</entry>
<entry>
<title>xfs: split xfs_itrace_entry</title>
<updated>2010-07-26T18:16:44Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-06-24T01:57:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cca28fb83d9e60779bb348edc33a62068e5f04a4'/>
<id>urn:sha1:cca28fb83d9e60779bb348edc33a62068e5f04a4</id>
<content type='text'>
Replace the xfs_itrace_entry catchall with specific trace points.  For
most simple callers we now use the simple inode class, which used to
be the iget class, but add more details tracing for namespace events,
which now includes the name of the directory entries manipulated.

Remove the xfs_inactive trace point, which is a duplicate of the clear_inode
one, and the xfs_change_file_space trace point, which is immediately
followed by the more specific alloc/free space trace points.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Dave Chinner &lt;dchinner@redhat.com&gt;

</content>
</entry>
</feed>
