<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/fs/f2fs/acl.h, branch linux-4.4.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.4.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.4.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2014-11-04T00:07:33+00:00</updated>
<entry>
<title>f2fs: avoid deadlock on init_inode_metadata</title>
<updated>2014-11-04T00:07:33+00:00</updated>
<author>
<name>Jaegeuk Kim</name>
<email>jaegeuk@kernel.org</email>
</author>
<published>2014-10-14T02:42:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=bce8d1120707c06088928b2ee52a58703d74ac29'/>
<id>urn:sha1:bce8d1120707c06088928b2ee52a58703d74ac29</id>
<content type='text'>
Previously, init_inode_metadata does not hold any parent directory's inode
page. So, f2fs_init_acl can grab its parent inode page without any problem.
But, when we use inline_dentry, that page is grabbed during f2fs_add_link,
so that we can fall into deadlock condition like below.

INFO: task mknod:11006 blocked for more than 120 seconds.
      Tainted: G           OE  3.17.0-rc1+ #13
"echo 0 &gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
mknod           D ffff88003fc94580     0 11006  11004 0x00000000
 ffff880007717b10 0000000000000002 ffff88003c323220 ffff880007717fd8
 0000000000014580 0000000000014580 ffff88003daecb30 ffff88003c323220
 ffff88003fc94e80 ffff88003ffbb4e8 ffff880007717ba0 0000000000000002
Call Trace:
 [&lt;ffffffff8173dc40&gt;] ? bit_wait+0x50/0x50
 [&lt;ffffffff8173d4cd&gt;] io_schedule+0x9d/0x130
 [&lt;ffffffff8173dc6c&gt;] bit_wait_io+0x2c/0x50
 [&lt;ffffffff8173da3b&gt;] __wait_on_bit_lock+0x4b/0xb0
 [&lt;ffffffff811640a7&gt;] __lock_page+0x67/0x70
 [&lt;ffffffff810acf50&gt;] ? autoremove_wake_function+0x40/0x40
 [&lt;ffffffff811652cc&gt;] pagecache_get_page+0x14c/0x1e0
 [&lt;ffffffffa029afa9&gt;] get_node_page+0x59/0x130 [f2fs]
 [&lt;ffffffffa02a63ad&gt;] read_all_xattrs+0x24d/0x430 [f2fs]
 [&lt;ffffffffa02a6ca2&gt;] f2fs_getxattr+0x52/0xe0 [f2fs]
 [&lt;ffffffffa02a7481&gt;] f2fs_get_acl+0x41/0x2d0 [f2fs]
 [&lt;ffffffff8122d847&gt;] get_acl+0x47/0x70
 [&lt;ffffffff8122db5a&gt;] posix_acl_create+0x5a/0x150
 [&lt;ffffffffa02a7759&gt;] f2fs_init_acl+0x29/0xcb [f2fs]
 [&lt;ffffffffa0286a8d&gt;] init_inode_metadata+0x5d/0x340 [f2fs]
 [&lt;ffffffffa029253a&gt;] f2fs_add_inline_entry+0x12a/0x2e0 [f2fs]
 [&lt;ffffffffa0286ea5&gt;] __f2fs_add_link+0x45/0x4a0 [f2fs]
 [&lt;ffffffffa028b5b6&gt;] ? f2fs_new_inode+0x146/0x220 [f2fs]
 [&lt;ffffffffa028b816&gt;] f2fs_mknod+0x86/0xf0 [f2fs]
 [&lt;ffffffff811e3ec1&gt;] vfs_mknod+0xe1/0x160
 [&lt;ffffffff811e4b26&gt;] SyS_mknod+0x1f6/0x200
 [&lt;ffffffff81741d7f&gt;] tracesys+0xe1/0xe6

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: use generic posix ACL infrastructure</title>
<updated>2014-01-26T04:58:19+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@infradead.org</email>
</author>
<published>2013-12-20T13:16:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a6dda0e63e97122ce9e0ba04367e37cca28315fa'/>
<id>urn:sha1:a6dda0e63e97122ce9e0ba04367e37cca28315fa</id>
<content type='text'>
f2fs has some weird mode bit handling, so still using the old
chmod code for now.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>f2fs: fix a deadlock during init_acl procedure</title>
<updated>2013-10-28T04:39:09+00:00</updated>
<author>
<name>Jaegeuk Kim</name>
<email>jaegeuk.kim@samsung.com</email>
</author>
<published>2013-10-28T04:17:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2ed2d5b33cb564025b1eb90650d70a0a3592c0e3'/>
<id>urn:sha1:2ed2d5b33cb564025b1eb90650d70a0a3592c0e3</id>
<content type='text'>
The deadlock is found through the following scenario.

sys_mkdir()
 -&gt; f2fs_add_link()
  -&gt; __f2fs_add_link()
   -&gt; init_inode_metadata()
     : lock_page(inode);
    -&gt; f2fs_init_acl()
     -&gt; f2fs_set_acl()
      -&gt; f2fs_setxattr(..., NULL)
       : This NULL page incurs a deadlock at update_inode_page().

So, likewise f2fs_init_security(), this patch adds a parameter to transfer the
locked inode page to f2fs_setxattr().

Found by Linux File System Verification project (linuxtesting.org).

Reported-by: Alexey Khoroshilov &lt;khoroshilov@ispras.ru&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: clean up acl flow for better readability</title>
<updated>2013-10-28T04:38:21+00:00</updated>
<author>
<name>Jaegeuk Kim</name>
<email>jaegeuk.kim@samsung.com</email>
</author>
<published>2013-10-28T04:12:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b8b60e1a65893728ca868493cb4c4b64b55e7f9c'/>
<id>urn:sha1:b8b60e1a65893728ca868493cb4c4b64b55e7f9c</id>
<content type='text'>
This patch cleans up a couple of acl codes.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: adjust kernel coding style</title>
<updated>2012-12-11T04:43:42+00:00</updated>
<author>
<name>Jaegeuk Kim</name>
<email>jaegeuk.kim@samsung.com</email>
</author>
<published>2012-11-29T04:28:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0a8165d7c2cf1395059db20ab07665baf3758fcd'/>
<id>urn:sha1:0a8165d7c2cf1395059db20ab07665baf3758fcd</id>
<content type='text'>
As pointed out by Randy Dunlap, this patch removes all usage of "/**" for comment
blocks. Instead, just use "/*".

Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
<entry>
<title>f2fs: add xattr and acl functionalities</title>
<updated>2012-12-11T04:43:41+00:00</updated>
<author>
<name>Jaegeuk Kim</name>
<email>jaegeuk.kim@samsung.com</email>
</author>
<published>2012-11-02T08:12:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=af48b85b8cd3fbb12c9b6759c16db6d69c0b03da'/>
<id>urn:sha1:af48b85b8cd3fbb12c9b6759c16db6d69c0b03da</id>
<content type='text'>
This implements xattr and acl functionalities.

- F2FS uses a node page to contain use extended attributes.

Signed-off-by: Changman Lee &lt;cm224.lee@samsung.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk.kim@samsung.com&gt;
</content>
</entry>
</feed>
