<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/ocfs2/aops.c, branch linux-3.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-05-06T21:32:46Z</updated>
<entry>
<title>switch {__,}blockdev_direct_IO() to iov_iter</title>
<updated>2014-05-06T21:32:46Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-03-05T06:33:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=31b140398ce56ab41646eda7f02bcb78d6a4c916'/>
<id>urn:sha1:31b140398ce56ab41646eda7f02bcb78d6a4c916</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>pass iov_iter to -&gt;direct_IO()</title>
<updated>2014-05-06T21:32:44Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-03-05T02:27:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d8d3d94b80aa1a1c0ca75c58b8abdc7356f38418'/>
<id>urn:sha1:d8d3d94b80aa1a1c0ca75c58b8abdc7356f38418</id>
<content type='text'>
unmodified, for now

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ocfs2: improve fsync efficiency and fix deadlock between aio_write and sync_file</title>
<updated>2014-04-03T23:20:53Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2014-04-03T21:46:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2931cdcb49194503b19345c597b68fdcf78396f8'/>
<id>urn:sha1:2931cdcb49194503b19345c597b68fdcf78396f8</id>
<content type='text'>
Currently, ocfs2_sync_file grabs i_mutex and forces the current journal
transaction to complete.  This isn't terribly efficient, since sync_file
really only needs to wait for the last transaction involving that inode
to complete, and this doesn't require i_mutex.

Therefore, implement the necessary bits to track the newest tid
associated with an inode, and teach sync_file to wait for that instead
of waiting for everything in the journal to commit.  Furthermore, only
issue the flush request to the drive if jbd2 hasn't already done so.

This also eliminates the deadlock between ocfs2_file_aio_write() and
ocfs2_sync_file().  aio_write takes i_mutex then calls
ocfs2_aiodio_wait() to wait for unaligned dio writes to finish.
However, if that dio completion involves calling fsync, then we can get
into trouble when some ocfs2_sync_file tries to take i_mutex.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Mark Fasheh &lt;mfasheh@suse.de&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ocfs2: change ip_unaligned_aio to of type mutex from atomit_t</title>
<updated>2014-04-03T23:20:53Z</updated>
<author>
<name>Wengang Wang</name>
</author>
<published>2014-04-03T21:46:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c18ceab01240fd4c354b78d877571b729908e4a3'/>
<id>urn:sha1:c18ceab01240fd4c354b78d877571b729908e4a3</id>
<content type='text'>
There is a problem that waitqueue_active() may check stale data thus miss
a wakeup of threads waiting on ip_unaligned_aio.

The valid value of ip_unaligned_aio is only 0 and 1 so we can change it to
be of type mutex thus the above prolem is avoid.  Another benifit is that
mutex which works as FIFO is fairer than wake_up_all().

Signed-off-by: Wengang Wang &lt;wen.gang.wang@oracle.com&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ocfs2: simplify ocfs2_invalidatepage() and ocfs2_releasepage()</title>
<updated>2013-11-13T03:09:02Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2013-11-12T23:07:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=41ecc345984bcc8bf341a3e758c1eb3fc543dd83'/>
<id>urn:sha1:41ecc345984bcc8bf341a3e758c1eb3fc543dd83</id>
<content type='text'>
Ocfs2 doesn't do data journalling.  Thus its -&gt;invalidatepage and
-&gt;releasepage functions never get called on buffers that have journal
heads attached.  So just use standard variants of functions from
buffer.c.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ocfs2: fix possible double free in ocfs2_write_begin_nolock</title>
<updated>2013-11-13T03:09:02Z</updated>
<author>
<name>Xue jiufei</name>
</author>
<published>2013-11-12T23:07:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b1214e4757b7d5fcea483b927e130361d41430a5'/>
<id>urn:sha1:b1214e4757b7d5fcea483b927e130361d41430a5</id>
<content type='text'>
When ocfs2_write_cluster_by_desc() failed in ocfs2_write_begin_nolock()
because of ENOSPC, it goes to out_quota, freeing data_ac(meta_ac).  Then
it calls ocfs2_try_to_free_truncate_log() to free space.  If enough
space freed, it will try to write again.  Unfortunately, some error
happenes before ocfs2_lock_allocators(), it goes to out and free
data_ac(meta_ac) again.

Signed-off-by: joyce &lt;xuejiufei@huawei.com&gt;
Reviewed-by: Jie Liu &lt;jeff.liu@oracle.com&gt;
Acked-by: Joel Becker &lt;jlbec@evilplan.org&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ocfs2: return ENOMEM when sb_getblk() fails</title>
<updated>2013-11-13T03:09:00Z</updated>
<author>
<name>Rui Xiang</name>
</author>
<published>2013-11-12T23:06:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7391a294b861bf2c3b762dfdcf61b9c5f1bffa1f'/>
<id>urn:sha1:7391a294b861bf2c3b762dfdcf61b9c5f1bffa1f</id>
<content type='text'>
The only reason for sb_getblk() failing is if it can't allocate the
buffer_head.  So return ENOMEM instead when it fails.

[joseph.qi@huawei.com: ocfs2_symlink_get_block() and ocfs2_read_blocks_sync() and ocfs2_read_blocks() need the same change]
Signed-off-by: Rui Xiang &lt;rui.xiang@huawei.com&gt;
Reviewed-by: Jie Liu &lt;jeff.liu@oracle.com&gt;
Reviewed-by: Mark Fasheh &lt;mfasheh@suse.de&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Cc: Joseph Qi &lt;joseph.qi@huawei.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fs/ocfs2: remove unnecessary variable bits_wanted from ocfs2_calc_extend_credits</title>
<updated>2013-11-13T03:09:00Z</updated>
<author>
<name>Goldwyn Rodrigues</name>
</author>
<published>2013-11-12T23:06:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=06f9da6e826a0b459652b98a21541bca274bd440'/>
<id>urn:sha1:06f9da6e826a0b459652b98a21541bca274bd440</id>
<content type='text'>
Code cleanup to remove unnecessary variable passed but never used
to ocfs2_calc_extend_credits.

Signed-off-by: Goldwyn Rodrigues &lt;rgoldwyn@suse.com&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ocfs2: use i_size_read() to access i_size</title>
<updated>2013-09-11T22:56:30Z</updated>
<author>
<name>Junxiao Bi</name>
</author>
<published>2013-09-11T21:19:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f17c20dd2ec81e8ff328b81bc847da9429d0975b'/>
<id>urn:sha1:f17c20dd2ec81e8ff328b81bc847da9429d0975b</id>
<content type='text'>
Though ocfs2 uses inode-&gt;i_mutex to protect i_size, there are both
i_size_read/write() and direct accesses.  Clean up all direct access to
eliminate confusion.

Signed-off-by: Junxiao Bi &lt;junxiao.bi@oracle.com&gt;
Cc: Jie Liu &lt;jeff.liu@oracle.com&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>direct-io: Implement generic deferred AIO completions</title>
<updated>2013-09-04T13:23:46Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2013-09-04T13:04:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b7a8665edd8db733980389b098530f9e4f630b2'/>
<id>urn:sha1:7b7a8665edd8db733980389b098530f9e4f630b2</id>
<content type='text'>
Add support to the core direct-io code to defer AIO completions to user
context using a workqueue.  This replaces opencoded and less efficient
code in XFS and ext4 (we save a memory allocation for each direct IO)
and will be needed to properly support O_(D)SYNC for AIO.

The communication between the filesystem and the direct I/O code requires
a new buffer head flag, which is a bit ugly but not avoidable until the
direct I/O code stops abusing the buffer_head structure for communicating
with the filesystems.

Currently this creates a per-superblock unbound workqueue for these
completions, which is taken from an earlier patch by Jan Kara.  I'm
not really convinced about this use and would prefer a "normal" global
workqueue with a high concurrency limit, but this needs further discussion.

JK: Fixed ext4 part, dynamic allocation of the workqueue.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
</feed>
