<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/ocfs2, branch linux-4.0.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-05-17T16:55:06Z</updated>
<entry>
<title>ocfs2: dlm: fix race between purge and get lock resource</title>
<updated>2015-05-17T16:55:06Z</updated>
<author>
<name>Junxiao Bi</name>
</author>
<published>2015-05-05T23:24:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1fff73f21beb5feffa459e51a552f5c6a6550a86'/>
<id>urn:sha1:1fff73f21beb5feffa459e51a552f5c6a6550a86</id>
<content type='text'>
commit b1432a2a35565f538586774a03bf277c27fc267d upstream.

There is a race window in dlm_get_lock_resource(), which may return a
lock resource which has been purged.  This will cause the process to
hang forever in dlmlock() as the ast msg can't be handled due to its
lock resource not existing.

    dlm_get_lock_resource {
        ...
        spin_lock(&amp;dlm-&gt;spinlock);
        tmpres = __dlm_lookup_lockres_full(dlm, lockid, namelen, hash);
        if (tmpres) {
             spin_unlock(&amp;dlm-&gt;spinlock);
             &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; race window, dlm_run_purge_list() may run and purge
                              the lock resource
             spin_lock(&amp;tmpres-&gt;spinlock);
             ...
             spin_unlock(&amp;tmpres-&gt;spinlock);
        }
    }

Signed-off-by: Junxiao Bi &lt;junxiao.bi@oracle.com&gt;
Cc: Joseph Qi &lt;joseph.qi@huawei.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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ocfs2: _really_ sync the right range</title>
<updated>2015-04-09T11:18:48Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2015-04-08T21:00:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=64b4e2526d1cf6e6a4db6213d6e2b6e6ab59479a'/>
<id>urn:sha1:64b4e2526d1cf6e6a4db6213d6e2b6e6ab59479a</id>
<content type='text'>
"ocfs2 syncs the wrong range" had been broken; prior to it the
code was doing the wrong thing in case of O_APPEND, all right,
but _after_ it we were syncing the wrong range in 100% cases.
*ppos, aka iocb-&gt;ki_pos is incremented prior to that point,
so we are always doing sync on the area _after_ the one we'd
written to.

Spotted by Joseph Qi &lt;joseph.qi@huawei.com&gt; back in January;
unfortunately, I'd missed his mail back then ;-/

Cc: stable@vger.kernel.org
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ocfs2_file_write_iter: keep return value and current position update in sync</title>
<updated>2015-04-08T20:59:12Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2015-04-08T19:45:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9ce5a232b8a941be9e74c055535d81508207a570'/>
<id>urn:sha1:9ce5a232b8a941be9e74c055535d81508207a570</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[regression] ocfs2: do *not* increment -&gt;ki_pos twice</title>
<updated>2015-04-08T20:58:59Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2015-04-08T19:41:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cf1b5ea1c5cd26a003b01d4798266a4bdf0ffe64'/>
<id>urn:sha1:cf1b5ea1c5cd26a003b01d4798266a4bdf0ffe64</id>
<content type='text'>
generic_file_direct_write() already does that.  Broken by
"ocfs2: do not fallback to buffer I/O write if appending"

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ocfs2: make append_dio an incompat feature</title>
<updated>2015-03-13T01:46:07Z</updated>
<author>
<name>Mark Fasheh</name>
</author>
<published>2015-03-12T23:25:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=18d585f0f2d4c9dc7dfe6e69dcae4933d5a428c9'/>
<id>urn:sha1:18d585f0f2d4c9dc7dfe6e69dcae4933d5a428c9</id>
<content type='text'>
It turns out that making this feature ro_compat isn't quite enough to
prevent accidental corruption on mount from older kernels.  Ocfs2 (like
other file systems) will process orphaned inodes even when the user mounts
in 'ro' mode.  So for the case of a filesystem not knowing the append_dio
feature, mounting the filesystem could result in orphaned-for-dio files
being deleted, which we clearly don't want.

So instead, turn this into an incompat flag.

Btw, this is kind of my fault - initially I asked that we add a flag to
cover the feature and even suggested that we use an ro flag.  It wasn't
until I was looking through our commits for v4.0-rc1 that I realized we
actually want this to be incompat.

Signed-off-by: Mark Fasheh &lt;mfasheh@suse.de&gt;
Cc: Joseph Qi &lt;joseph.qi@huawei.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: set append dio as a ro compat feature</title>
<updated>2015-02-17T01:56:05Z</updated>
<author>
<name>Joseph Qi</name>
</author>
<published>2015-02-17T00:00:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=160cc266639d4213c15c103074561c1b44ffe691'/>
<id>urn:sha1:160cc266639d4213c15c103074561c1b44ffe691</id>
<content type='text'>
Intruduce a bit OCFS2_FEATURE_RO_COMPAT_APPEND_DIO and check it in
write flow. If the bit is not set, fall back to the old way.

Signed-off-by: Joseph Qi &lt;joseph.qi@huawei.com&gt;
Cc: Weiwei Wang &lt;wangww631@huawei.com&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Cc: Junxiao Bi &lt;junxiao.bi@oracle.com&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;
Cc: Xuejiufei &lt;xuejiufei@huawei.com&gt;
Cc: alex chen &lt;alex.chen@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>ocfs2: wait for orphan recovery first once append O_DIRECT write crash</title>
<updated>2015-02-17T01:56:05Z</updated>
<author>
<name>Joseph Qi</name>
</author>
<published>2015-02-17T00:00:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4813962beef7586f890a645a1bda77691da4b74a'/>
<id>urn:sha1:4813962beef7586f890a645a1bda77691da4b74a</id>
<content type='text'>
If one node has crashed with orphan entry leftover, another node which do
append O_DIRECT write to the same file will override the
i_dio_orphaned_slot.  Then the old entry won't be cleaned forever.  If
this case happens, we let it wait for orphan recovery first.

Signed-off-by: Joseph Qi &lt;joseph.qi@huawei.com&gt;
Cc: Weiwei Wang &lt;wangww631@huawei.com&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Cc: Junxiao Bi &lt;junxiao.bi@oracle.com&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;
Cc: Xuejiufei &lt;xuejiufei@huawei.com&gt;
Cc: alex chen &lt;alex.chen@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>ocfs2: complete the rest request through buffer io</title>
<updated>2015-02-17T01:56:05Z</updated>
<author>
<name>Joseph Qi</name>
</author>
<published>2015-02-17T00:00:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3a83b342c87e6d21290de8dc76ec20a67821261d'/>
<id>urn:sha1:3a83b342c87e6d21290de8dc76ec20a67821261d</id>
<content type='text'>
Complte the rest request thourgh buffer io after direct write performed.

Signed-off-by: Joseph Qi &lt;joseph.qi@huawei.com&gt;
Cc: Weiwei Wang &lt;wangww631@huawei.com&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Cc: Junxiao Bi &lt;junxiao.bi@oracle.com&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;
Cc: Xuejiufei &lt;xuejiufei@huawei.com&gt;
Cc: alex chen &lt;alex.chen@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>ocfs2: do not fallback to buffer I/O write if appending</title>
<updated>2015-02-17T01:56:05Z</updated>
<author>
<name>Joseph Qi</name>
</author>
<published>2015-02-17T00:00:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d943d59dd32d33cd8a44a2f9caf373ede11200da'/>
<id>urn:sha1:d943d59dd32d33cd8a44a2f9caf373ede11200da</id>
<content type='text'>
Now we can do direct io and do not fallback to buffered IO any more in
case of append O_DIRECT write.

Signed-off-by: Joseph Qi &lt;joseph.qi@huawei.com&gt;
Cc: Weiwei Wang &lt;wangww631@huawei.com&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Cc: Junxiao Bi &lt;junxiao.bi@oracle.com&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;
Cc: Xuejiufei &lt;xuejiufei@huawei.com&gt;
Cc: alex chen &lt;alex.chen@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>ocfs2: allocate blocks in ocfs2_direct_IO_get_blocks</title>
<updated>2015-02-17T01:56:05Z</updated>
<author>
<name>Joseph Qi</name>
</author>
<published>2015-02-17T00:00:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=49255dce65dba3d06a0f642fee788f0a50d48d5b'/>
<id>urn:sha1:49255dce65dba3d06a0f642fee788f0a50d48d5b</id>
<content type='text'>
Allow blocks allocation in ocfs2_direct_IO_get_blocks.

Signed-off-by: Joseph Qi &lt;joseph.qi@huawei.com&gt;
Cc: Weiwei Wang &lt;wangww631@huawei.com&gt;
Cc: Junxiao Bi &lt;junxiao.bi@oracle.com&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.com&gt;
Cc: Xuejiufei &lt;xuejiufei@huawei.com&gt;
Cc: alex chen &lt;alex.chen@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>
</feed>
