<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/xfs/xfs_vnodeops.h, branch linux-3.2.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.2.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.2.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-11-20T01:01:43Z</updated>
<entry>
<title>fs: Give dentry to inode_change_ok() instead of inode</title>
<updated>2016-11-20T01:01:43Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2016-05-26T14:55:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=44b25c3e25af81daebf188ba1bc94b123ea40138'/>
<id>urn:sha1:44b25c3e25af81daebf188ba1bc94b123ea40138</id>
<content type='text'>
commit 31051c85b5e2aaaf6315f74c72a732673632a905 upstream.

inode_change_ok() will be resposible for clearing capabilities and IMA
extended attributes and as such will need dentry. Give it as an argument
to inode_change_ok() instead of an inode. Also rename inode_change_ok()
to setattr_prepare() to better relect that it does also some
modifications in addition to checks.

Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
[bwh: Backported to 3.2:
 - Drop changes to f2fs, lustre, orangefs, overlayfs
 - Adjust filenames, context
 - In nfsd, pass dentry to nfsd_sanitize_attrs()
 - In xfs, pass dentry to xfs_change_file_space(), xfs_set_mode(),
   xfs_setattr_nonsize(), and xfs_setattr_size()
 - Update ext3 as well
 - Mark pohmelfs as BROKEN; it's long dead upstream]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>xfs: ensure truncate forces zeroed blocks to disk</title>
<updated>2015-05-09T22:16:20Z</updated>
<author>
<name>Dave Chinner</name>
</author>
<published>2015-02-23T11:37:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=508489491f1dc63de67634a73ac255bb03204c25'/>
<id>urn:sha1:508489491f1dc63de67634a73ac255bb03204c25</id>
<content type='text'>
commit 5885ebda878b47c4b4602d4b0410cb4b282af024 upstream.

A new fsync vs power fail test in xfstests indicated that XFS can
have unreliable data consistency when doing extending truncates that
require block zeroing. The blocks beyond EOF get zeroed in memory,
but we never force those changes to disk before we run the
transaction that extends the file size and exposes those blocks to
userspace. This can result in the blocks not being correctly zeroed
after a crash.

Because in-memory behaviour is correct, tools like fsx don't pick up
any coherency problems - it's not until the filesystem is shutdown
or the system crashes after writing the truncate transaction to the
journal but before the zeroed data in the page cache is flushed that
the issue is exposed.

Fix this by also flushing the dirty data in memory region between
the old size and new size when we've found blocks that need zeroing
in the truncate process.

Reported-by: Liu Bo &lt;bo.li.liu@oracle.com&gt;
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;
[bwh: Backported to 3.2: adjust filename, context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>xfs: split xfs_setattr</title>
<updated>2011-07-08T12:34:23Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2011-07-08T12:34:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c4ed4243c40f97ed5b7b121777bbbc6aeaa722f0'/>
<id>urn:sha1:c4ed4243c40f97ed5b7b121777bbbc6aeaa722f0</id>
<content type='text'>
Split up xfs_setattr into two functions, one for the complex truncate
handling, and one for the trivial attribute updates.  Also move both
new routines to xfs_iops.c as they are fairly Linux-specific.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Alex Elder &lt;aelder@sgi.com&gt;
Reviewed-by: Dave Chinner &lt;dchinner@redhat.com&gt;
</content>
</entry>
<entry>
<title>xfs: preallocation transactions do not need to be synchronous</title>
<updated>2011-03-25T22:13:08Z</updated>
<author>
<name>Dave Chinner</name>
</author>
<published>2011-03-25T22:13:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8287889742940cf3c416e755322090d09f2829be'/>
<id>urn:sha1:8287889742940cf3c416e755322090d09f2829be</id>
<content type='text'>
Preallocation and hole punch transactions are currently synchronous
and this is causing performance problems in some cases. The
transactions don't need to be synchronous as we don't need to
guarantee the preallocation is persistent on disk until a
fdatasync, fsync, sync operation occurs. If the file is opened
O_SYNC or O_DATASYNC, only then should the transaction be issued
synchronously.

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: 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: kill xfs_lrw.h</title>
<updated>2010-03-01T22:35:44Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-02-17T19:36:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d7658d487f4c62983015ba6c99f02dedb3ea97c7'/>
<id>urn:sha1:d7658d487f4c62983015ba6c99f02dedb3ea97c7</id>
<content type='text'>
Move the two declarations to better fitting headers now that
xfs_lrw.c is gone.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Dave Chinner &lt;david@fromorbit.com&gt;
Signed-off-by: Alex Elder &lt;aelder@sgi.com&gt;
</content>
</entry>
<entry>
<title>xfs: remove wrapper for the fsync file operation</title>
<updated>2010-03-01T22:34:38Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-02-15T09:44:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fd3200bef7d66ed3924f72c79a465fb7ff85478a'/>
<id>urn:sha1:fd3200bef7d66ed3924f72c79a465fb7ff85478a</id>
<content type='text'>
Currently the fsync file operation is divided into a low-level
routine doing all the work and one that implements the Linux file
operation and does minimal argument wrapping.  This is a leftover
from the days of the vnode operations layer and can be removed to
simplify the code a bit, as well as preparing for the implementation
of an optimized fdatasync which needs to look at the Linux inode
state.

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: merge xfs_lrw.c into xfs_file.c</title>
<updated>2010-03-01T22:34:18Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-02-15T09:44:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dda35b8f84d209784041bbad47f9e195a08a7527'/>
<id>urn:sha1:dda35b8f84d209784041bbad47f9e195a08a7527</id>
<content type='text'>
Currently the code to implement the file operations is split over
two small files.  Merge the content of xfs_lrw.c into xfs_file.c to
have it in one place.  Note that I haven't done various cleanups
that are possible after this yet, they will follow in the next
patch.  Also the function xfs_dev_is_read_only which was in
xfs_lrw.c before really doesn't fit in here at all and was moved to
xfs_mount.c.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Dave Chinner &lt;david@fromorbit.com&gt;
Signed-off-by: Alex Elder &lt;aelder@sgi.com&gt;
</content>
</entry>
<entry>
<title>xfs: convert attr to use unsigned names</title>
<updated>2010-01-19T23:47:48Z</updated>
<author>
<name>Dave Chinner</name>
</author>
<published>2010-01-19T23:47:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a9273ca5c6814f393e18ed66645f817b2b71e9ad'/>
<id>urn:sha1:a9273ca5c6814f393e18ed66645f817b2b71e9ad</id>
<content type='text'>
To be consistent with the directory code, the attr code should use
unsigned names. Convert the names from the vfs at the highest level
to unsigned, and ænsure they are consistenly used as unsigned down
to disk.

Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>xfs: simplify inode teardown</title>
<updated>2009-12-11T21:11:19Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2009-09-29T13:48:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=848ce8f731aed0a2d4ab5884a4f6664af73d2dd0'/>
<id>urn:sha1:848ce8f731aed0a2d4ab5884a4f6664af73d2dd0</id>
<content type='text'>
Currently the reclaim code for the case where we don't reclaim the
final reclaim is overly complicated.  We know that the inode is clean
but instead of just directly reclaiming the clean inode we go through
the whole process of marking the inode reclaimable just to directly
reclaim it from the calling context.  Besides being overly complicated
this introduces a race where iget could recycle an inode between
marked reclaimable and actually being reclaimed leading to panics.

This patch gets rid of the existing reclaim path, and replaces it with
a simple call to xfs_ireclaim if the inode was clean.  While we're at
it we also use the slightly more lax xfs_inode_clean check we'd use
later to determine if we need to flush the inode here.

Finally get rid of xfs_reclaim function and place the remaining small
bits of reclaim code directly into xfs_fs_destroy_inode.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reported-by: Patrick Schreurs &lt;patrick@news-service.com&gt;
Reported-by: Tommy van Leeuwen &lt;tommy@news-service.com&gt;
Tested-by: Patrick Schreurs &lt;patrick@news-service.com&gt;
Reviewed-by: Alex Elder &lt;aelder@sgi.com&gt;
Signed-off-by: Alex Elder &lt;aelder@sgi.com&gt;
</content>
</entry>
</feed>
