<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs/ext4/inline.c, branch v4.3</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.3</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.3'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2015-05-18T17:14:47Z</updated>
<entry>
<title>ext4 crypto: optimize filename encryption</title>
<updated>2015-05-18T17:14:47Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2015-05-18T17:14:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5b643f9ce34df945e58c7176275d406aa0db704f'/>
<id>urn:sha1: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>
</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:07Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-04-26T22:48:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9ec3a646fe09970f801ab15e0f1694060b9f19af'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>VFS: normal filesystems (and lustre): d_inode() annotations</title>
<updated>2015-04-15T19:06:57Z</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2015-03-17T22:25:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2b0143b5c986be1ce8408b3aadc4709e0a94429d'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>ext4 crypto: insert encrypted filenames into a leaf directory block</title>
<updated>2015-04-12T04:56:28Z</updated>
<author>
<name>Michael Halcrow</name>
<email>mhalcrow@google.com</email>
</author>
<published>2015-04-12T04:56:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4bdfc873ba34e425d6532581b4127b960274272a'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>ext4 crypto: teach ext4_htree_store_dirent() to store decrypted filenames</title>
<updated>2015-04-12T04:56:26Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2015-04-12T04:56:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2f61830ae33e2944ad66bb8bb40916f534b2e494'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>ext4: fix transposition typo in format string</title>
<updated>2015-04-02T20:42:43Z</updated>
<author>
<name>Rasmus Villemoes</name>
<email>linux@rasmusvillemoes.dk</email>
</author>
<published>2015-04-02T20:42:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=80cfb71e2e9222b86399a554a69e299877f2dc27'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>ext4: ext4_da_convert_inline_data_to_extent drop locked page after error</title>
<updated>2014-12-06T02:37:15Z</updated>
<author>
<name>Dmitry Monakhov</name>
<email>dmonakhov@openvz.org</email>
</author>
<published>2014-12-06T02:37:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=50db71abc529c48b21f4c3034d3cff27cfb25795'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>ext4: ext4_inline_data_fiemap should respect callers argument</title>
<updated>2014-12-02T21:11:20Z</updated>
<author>
<name>Dmitry Monakhov</name>
<email>dmonakhov@openvz.org</email>
</author>
<published>2014-12-02T21:11:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d952d69e268f833c85c0bafee9f67f9dba85044b'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>ext4: prevent fsreentrance deadlock for inline_data</title>
<updated>2014-12-02T21:09:50Z</updated>
<author>
<name>Dmitry Monakhov</name>
<email>dmonakhov@openvz.org</email>
</author>
<published>2014-12-02T21:09:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5cc28a9eaab21ce7ded7845b32e2eafc4bbeb175'/>
<id>urn:sha1:5cc28a9eaab21ce7ded7845b32e2eafc4bbeb175</id>
<content type='text'>
ext4_da_convert_inline_data_to_extent() invokes
grab_cache_page_write_begin().  grab_cache_page_write_begin performs
memory allocation, so fs-reentrance should be prohibited because we
are inside journal transaction.

Signed-off-by: Dmitry Monakhov &lt;dmonakhov@openvz.org&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: Replace open coded mdata csum feature to helper function</title>
<updated>2014-10-13T07:36:16Z</updated>
<author>
<name>Dmitry Monakhov</name>
<email>dmonakhov@openvz.org</email>
</author>
<published>2014-10-13T07:36:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9aa5d32ba269bec0e7eaba2697a986a7b0bc8528'/>
<id>urn:sha1:9aa5d32ba269bec0e7eaba2697a986a7b0bc8528</id>
<content type='text'>
Besides the fact that this replacement improves code readability
it also protects from errors caused direct EXT4_S(sb)-&gt;s_es manipulation
which may result attempt to use uninitialized  csum machinery.

#Testcase_BEGIN
IMG=/dev/ram0
MNT=/mnt
mkfs.ext4 $IMG
mount $IMG $MNT
#Enable feature directly on disk, on mounted fs
tune2fs -O metadata_csum  $IMG
# Provoke metadata update, likey result in OOPS
touch $MNT/test
umount $MNT
#Testcase_END

# Replacement script
@@
expression E;
@@
- EXT4_HAS_RO_COMPAT_FEATURE(E, EXT4_FEATURE_RO_COMPAT_METADATA_CSUM)
+ ext4_has_metadata_csum(E)

https://bugzilla.kernel.org/show_bug.cgi?id=82201

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