<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/fs/ext4/inline.c, branch v4.5</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>ext4 crypto: simplify interfaces to directory entry insert functions</title>
<updated>2016-01-08T21:00:31+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2016-01-08T21:00:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=56a04915df4e85b34b1c1613c64b87dd2283c26a'/>
<id>56a04915df4e85b34b1c1613c64b87dd2283c26a</id>
<content type='text'>
A number of functions include ext4_add_dx_entry, make_indexed_dir,
etc. are being passed a dentry even though the only thing they use is
the containing parent.  We can shrink the code size slightly by making
this replacement.  This will also be useful in cases where we don't
have a dentry as the argument to the directory entry insert functions.

Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A number of functions include ext4_add_dx_entry, make_indexed_dir,
etc. are being passed a dentry even though the only thing they use is
the containing parent.  We can shrink the code size slightly by making
this replacement.  This will also be useful in cases where we don't
have a dentry as the argument to the directory entry insert functions.

Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ext4: clean up feature test macros with predicate functions</title>
<updated>2015-10-17T20:18:43+00:00</updated>
<author>
<name>Darrick J. Wong</name>
<email>darrick.wong@oracle.com</email>
</author>
<published>2015-10-17T20:18:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e2b911c53584a92266943f3b7f2cdbc19c1a4e80'/>
<id>e2b911c53584a92266943f3b7f2cdbc19c1a4e80</id>
<content type='text'>
Create separate predicate functions to test/set/clear feature flags,
thereby replacing the wordy old macros.  Furthermore, clean out the
places where we open-coded feature tests.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Create separate predicate functions to test/set/clear feature flags,
thereby replacing the wordy old macros.  Furthermore, clean out the
places where we open-coded feature tests.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ext4 crypto: optimize filename encryption</title>
<updated>2015-05-18T17:14:47+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2015-05-18T17:14:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5b643f9ce34df945e58c7176275d406aa0db704f'/>
<id>5b643f9ce34df945e58c7176275d406aa0db704f</id>
<content type='text'>
Encrypt the filename as soon it is passed in by the user.  This avoids
our needing to encrypt the filename 2 or 3 times while in the process
of creating a filename.

Similarly, when looking up a directory entry, encrypt the filename
early, or if the encryption key is not available, base-64 decode the
file syystem so that the hash value and the last 16 bytes of the
encrypted filename is available in the new struct ext4_filename data
structure.

Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Encrypt the filename as soon it is passed in by the user.  This avoids
our needing to encrypt the filename 2 or 3 times while in the process
of creating a filename.

Similarly, when looking up a directory entry, encrypt the filename
early, or if the encryption key is not available, base-64 decode the
file syystem so that the hash value and the last 16 bytes of the
encrypted filename is available in the new struct ext4_filename data
structure.

Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs</title>
<updated>2015-04-27T00:22:07+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-04-26T22:48:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9ec3a646fe09970f801ab15e0f1694060b9f19af'/>
<id>9ec3a646fe09970f801ab15e0f1694060b9f19af</id>
<content type='text'>
Pull fourth vfs update from Al Viro:
 "d_inode() annotations from David Howells (sat in for-next since before
  the beginning of merge window) + four assorted fixes"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  RCU pathwalk breakage when running into a symlink overmounting something
  fix I_DIO_WAKEUP definition
  direct-io: only inc/dec inode-&gt;i_dio_count for file systems
  fs/9p: fix readdir()
  VFS: assorted d_backing_inode() annotations
  VFS: fs/inode.c helpers: d_inode() annotations
  VFS: fs/cachefiles: d_backing_inode() annotations
  VFS: fs library helpers: d_inode() annotations
  VFS: assorted weird filesystems: d_inode() annotations
  VFS: normal filesystems (and lustre): d_inode() annotations
  VFS: security/: d_inode() annotations
  VFS: security/: d_backing_inode() annotations
  VFS: net/: d_inode() annotations
  VFS: net/unix: d_backing_inode() annotations
  VFS: kernel/: d_inode() annotations
  VFS: audit: d_backing_inode() annotations
  VFS: Fix up some -&gt;d_inode accesses in the chelsio driver
  VFS: Cachefiles should perform fs modifications on the top layer only
  VFS: AF_UNIX sockets should call mknod on the top layer only
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull fourth vfs update from Al Viro:
 "d_inode() annotations from David Howells (sat in for-next since before
  the beginning of merge window) + four assorted fixes"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  RCU pathwalk breakage when running into a symlink overmounting something
  fix I_DIO_WAKEUP definition
  direct-io: only inc/dec inode-&gt;i_dio_count for file systems
  fs/9p: fix readdir()
  VFS: assorted d_backing_inode() annotations
  VFS: fs/inode.c helpers: d_inode() annotations
  VFS: fs/cachefiles: d_backing_inode() annotations
  VFS: fs library helpers: d_inode() annotations
  VFS: assorted weird filesystems: d_inode() annotations
  VFS: normal filesystems (and lustre): d_inode() annotations
  VFS: security/: d_inode() annotations
  VFS: security/: d_backing_inode() annotations
  VFS: net/: d_inode() annotations
  VFS: net/unix: d_backing_inode() annotations
  VFS: kernel/: d_inode() annotations
  VFS: audit: d_backing_inode() annotations
  VFS: Fix up some -&gt;d_inode accesses in the chelsio driver
  VFS: Cachefiles should perform fs modifications on the top layer only
  VFS: AF_UNIX sockets should call mknod on the top layer only
</pre>
</div>
</content>
</entry>
<entry>
<title>VFS: normal filesystems (and lustre): d_inode() annotations</title>
<updated>2015-04-15T19:06:57+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2015-03-17T22:25:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2b0143b5c986be1ce8408b3aadc4709e0a94429d'/>
<id>2b0143b5c986be1ce8408b3aadc4709e0a94429d</id>
<content type='text'>
that's the bulk of filesystem drivers dealing with inodes of their own

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
that's the bulk of filesystem drivers dealing with inodes of their own

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ext4 crypto: insert encrypted filenames into a leaf directory block</title>
<updated>2015-04-12T04:56:28+00:00</updated>
<author>
<name>Michael Halcrow</name>
<email>mhalcrow@google.com</email>
</author>
<published>2015-04-12T04:56:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4bdfc873ba34e425d6532581b4127b960274272a'/>
<id>4bdfc873ba34e425d6532581b4127b960274272a</id>
<content type='text'>
Signed-off-by: Uday Savagaonkar &lt;savagaon@google.com&gt;
Signed-off-by: Ildar Muslukhov &lt;ildarm@google.com&gt;
Signed-off-by: Michael Halcrow &lt;mhalcrow@google.com&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Uday Savagaonkar &lt;savagaon@google.com&gt;
Signed-off-by: Ildar Muslukhov &lt;ildarm@google.com&gt;
Signed-off-by: Michael Halcrow &lt;mhalcrow@google.com&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ext4 crypto: teach ext4_htree_store_dirent() to store decrypted filenames</title>
<updated>2015-04-12T04:56:26+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2015-04-12T04:56:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2f61830ae33e2944ad66bb8bb40916f534b2e494'/>
<id>2f61830ae33e2944ad66bb8bb40916f534b2e494</id>
<content type='text'>
For encrypted directories, we need to pass in a separate parameter for
the decrypted filename, since the directory entry contains the
encrypted filename.

Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For encrypted directories, we need to pass in a separate parameter for
the decrypted filename, since the directory entry contains the
encrypted filename.

Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ext4: fix transposition typo in format string</title>
<updated>2015-04-02T20:42:43+00:00</updated>
<author>
<name>Rasmus Villemoes</name>
<email>linux@rasmusvillemoes.dk</email>
</author>
<published>2015-04-02T20:42:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=80cfb71e2e9222b86399a554a69e299877f2dc27'/>
<id>80cfb71e2e9222b86399a554a69e299877f2dc27</id>
<content type='text'>
According to C99, %*.s means the same as %*.0s, in other words, print as
many spaces as the field width argument says and effectively ignore the
string argument. That is certainly not what was meant here. The kernel's
printf implementation, however, treats it as if the . was not there,
i.e. as %*s. I don't know if de-&gt;name is nul-terminated or not, but in
any case I'm guessing the intention was to use de-&gt;name_len as precision
instead of field width.

[ Note: this is debugging code which is commented out, so this is not
  security issue; a developer would have to explicitly enable
  INLINE_DIR_DEBUG before this would be an issue. ]

Signed-off-by: Rasmus Villemoes &lt;linux@rasmusvillemoes.dk&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
According to C99, %*.s means the same as %*.0s, in other words, print as
many spaces as the field width argument says and effectively ignore the
string argument. That is certainly not what was meant here. The kernel's
printf implementation, however, treats it as if the . was not there,
i.e. as %*s. I don't know if de-&gt;name is nul-terminated or not, but in
any case I'm guessing the intention was to use de-&gt;name_len as precision
instead of field width.

[ Note: this is debugging code which is commented out, so this is not
  security issue; a developer would have to explicitly enable
  INLINE_DIR_DEBUG before this would be an issue. ]

Signed-off-by: Rasmus Villemoes &lt;linux@rasmusvillemoes.dk&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ext4: ext4_da_convert_inline_data_to_extent drop locked page after error</title>
<updated>2014-12-06T02:37:15+00:00</updated>
<author>
<name>Dmitry Monakhov</name>
<email>dmonakhov@openvz.org</email>
</author>
<published>2014-12-06T02:37:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=50db71abc529c48b21f4c3034d3cff27cfb25795'/>
<id>50db71abc529c48b21f4c3034d3cff27cfb25795</id>
<content type='text'>
Testcase:
xfstests generic/270
MKFS_OPTIONS="-q -I 256 -O inline_data,64bit"

Call Trace:
 [&lt;ffffffff81144c76&gt;] lock_page+0x35/0x39 -------&gt; DEADLOCK
 [&lt;ffffffff81145260&gt;] pagecache_get_page+0x65/0x15a
 [&lt;ffffffff811507fc&gt;] truncate_inode_pages_range+0x1db/0x45c
 [&lt;ffffffff8120ea63&gt;] ? ext4_da_get_block_prep+0x439/0x4b6
 [&lt;ffffffff811b29b7&gt;] ? __block_write_begin+0x284/0x29c
 [&lt;ffffffff8120e62a&gt;] ? ext4_change_inode_journal_flag+0x16b/0x16b
 [&lt;ffffffff81150af0&gt;] truncate_inode_pages+0x12/0x14
 [&lt;ffffffff81247cb4&gt;] ext4_truncate_failed_write+0x19/0x25
 [&lt;ffffffff812488cf&gt;] ext4_da_write_inline_data_begin+0x196/0x31c
 [&lt;ffffffff81210dad&gt;] ext4_da_write_begin+0x189/0x302
 [&lt;ffffffff810c07ac&gt;] ? trace_hardirqs_on+0xd/0xf
 [&lt;ffffffff810ddd13&gt;] ? read_seqcount_begin.clone.1+0x9f/0xcc
 [&lt;ffffffff8114309d&gt;] generic_perform_write+0xc7/0x1c6
 [&lt;ffffffff810c040e&gt;] ? mark_held_locks+0x59/0x77
 [&lt;ffffffff811445d1&gt;] __generic_file_write_iter+0x17f/0x1c5
 [&lt;ffffffff8120726b&gt;] ext4_file_write_iter+0x2a5/0x354
 [&lt;ffffffff81185656&gt;] ? file_start_write+0x2a/0x2c
 [&lt;ffffffff8107bcdb&gt;] ? bad_area_nosemaphore+0x13/0x15
 [&lt;ffffffff811858ce&gt;] new_sync_write+0x8a/0xb2
 [&lt;ffffffff81186e7b&gt;] vfs_write+0xb5/0x14d
 [&lt;ffffffff81186ffb&gt;] SyS_write+0x5c/0x8c
 [&lt;ffffffff816f2529&gt;] system_call_fastpath+0x12/0x17

Signed-off-by: Dmitry Monakhov &lt;dmonakhov@openvz.org&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Testcase:
xfstests generic/270
MKFS_OPTIONS="-q -I 256 -O inline_data,64bit"

Call Trace:
 [&lt;ffffffff81144c76&gt;] lock_page+0x35/0x39 -------&gt; DEADLOCK
 [&lt;ffffffff81145260&gt;] pagecache_get_page+0x65/0x15a
 [&lt;ffffffff811507fc&gt;] truncate_inode_pages_range+0x1db/0x45c
 [&lt;ffffffff8120ea63&gt;] ? ext4_da_get_block_prep+0x439/0x4b6
 [&lt;ffffffff811b29b7&gt;] ? __block_write_begin+0x284/0x29c
 [&lt;ffffffff8120e62a&gt;] ? ext4_change_inode_journal_flag+0x16b/0x16b
 [&lt;ffffffff81150af0&gt;] truncate_inode_pages+0x12/0x14
 [&lt;ffffffff81247cb4&gt;] ext4_truncate_failed_write+0x19/0x25
 [&lt;ffffffff812488cf&gt;] ext4_da_write_inline_data_begin+0x196/0x31c
 [&lt;ffffffff81210dad&gt;] ext4_da_write_begin+0x189/0x302
 [&lt;ffffffff810c07ac&gt;] ? trace_hardirqs_on+0xd/0xf
 [&lt;ffffffff810ddd13&gt;] ? read_seqcount_begin.clone.1+0x9f/0xcc
 [&lt;ffffffff8114309d&gt;] generic_perform_write+0xc7/0x1c6
 [&lt;ffffffff810c040e&gt;] ? mark_held_locks+0x59/0x77
 [&lt;ffffffff811445d1&gt;] __generic_file_write_iter+0x17f/0x1c5
 [&lt;ffffffff8120726b&gt;] ext4_file_write_iter+0x2a5/0x354
 [&lt;ffffffff81185656&gt;] ? file_start_write+0x2a/0x2c
 [&lt;ffffffff8107bcdb&gt;] ? bad_area_nosemaphore+0x13/0x15
 [&lt;ffffffff811858ce&gt;] new_sync_write+0x8a/0xb2
 [&lt;ffffffff81186e7b&gt;] vfs_write+0xb5/0x14d
 [&lt;ffffffff81186ffb&gt;] SyS_write+0x5c/0x8c
 [&lt;ffffffff816f2529&gt;] system_call_fastpath+0x12/0x17

Signed-off-by: Dmitry Monakhov &lt;dmonakhov@openvz.org&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ext4: ext4_inline_data_fiemap should respect callers argument</title>
<updated>2014-12-02T21:11:20+00:00</updated>
<author>
<name>Dmitry Monakhov</name>
<email>dmonakhov@openvz.org</email>
</author>
<published>2014-12-02T21:11:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d952d69e268f833c85c0bafee9f67f9dba85044b'/>
<id>d952d69e268f833c85c0bafee9f67f9dba85044b</id>
<content type='text'>
Currently ext4_inline_data_fiemap ignores requested arguments (start
and len) which may lead endless loop if start != 0.  Also fix incorrect
extent length determination.

Signed-off-by: Dmitry Monakhov &lt;dmonakhov@openvz.org&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently ext4_inline_data_fiemap ignores requested arguments (start
and len) which may lead endless loop if start != 0.  Also fix incorrect
extent length determination.

Signed-off-by: Dmitry Monakhov &lt;dmonakhov@openvz.org&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</pre>
</div>
</content>
</entry>
</feed>
