<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs/ext4/inline.c, branch v3.8</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=v3.8</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.8'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2012-12-11T08:31:49Z</updated>
<entry>
<title>ext4: zero out inline data using memset() instead of empty_zero_page</title>
<updated>2012-12-11T08:31:49Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2012-12-11T08:31:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bd9926e80330d43f15b710c2935fa41b792d56fd'/>
<id>urn:sha1:bd9926e80330d43f15b710c2935fa41b792d56fd</id>
<content type='text'>
Not all architectures (in particular, sparc64) have empty_zero_page.
So instead of copying from empty_zero_page, use memset to clear the
inline data by signalling to ext4_xattr_set_entry() via a magic
pointer value, EXT4_ZERO_ATTR_VALUE, which is defined by casting -1 to
a pointer.

This fixes a build failure on sparc64, and the memset() should be more
efficient than using memcpy() anyway.

Signed-off-by: Tao Ma &lt;boyu.mt@taobao.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: let fallocate handle inline data correctly</title>
<updated>2012-12-10T19:06:03Z</updated>
<author>
<name>Tao Ma</name>
<email>boyu.mt@taobao.com</email>
</author>
<published>2012-12-10T19:06:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0c8d414f163f5d35e43a4de7a6e5ee8c253fcccf'/>
<id>urn:sha1:0c8d414f163f5d35e43a4de7a6e5ee8c253fcccf</id>
<content type='text'>
If we are punching hole in a file, we will return ENOTSUPP.
As for the fallocation of some extents, we will convert the
inline data to a normal extent based file first.

Signed-off-by: Tao Ma &lt;boyu.mt@taobao.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: let ext4_truncate handle inline data correctly</title>
<updated>2012-12-10T19:06:02Z</updated>
<author>
<name>Tao Ma</name>
<email>boyu.mt@taobao.com</email>
</author>
<published>2012-12-10T19:06:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=aef1c8513c1f8ae076e22ea2a57eff5835578e75'/>
<id>urn:sha1:aef1c8513c1f8ae076e22ea2a57eff5835578e75</id>
<content type='text'>
Signed-off-by: Robin Dong &lt;sanbai@taobao.com&gt;
Signed-off-by: Tao Ma &lt;boyu.mt@taobao.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: evict inline data out if we need to strore xattr in inode</title>
<updated>2012-12-10T19:06:02Z</updated>
<author>
<name>Tao Ma</name>
<email>boyu.mt@taobao.com</email>
</author>
<published>2012-12-10T19:06:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0d812f77b36c16dff692390508155de2c7f95ea3'/>
<id>urn:sha1:0d812f77b36c16dff692390508155de2c7f95ea3</id>
<content type='text'>
Now we that store data in the inode, in case we need to store some
xattrs and inode doesn't have enough space, Andreas suggested that we
should keep the xattr(metadata) in and data should be pushed out.  So
this patch does the work.

Signed-off-by: Tao Ma &lt;boyu.mt@taobao.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: let fiemap work with inline data</title>
<updated>2012-12-10T19:06:02Z</updated>
<author>
<name>Tao Ma</name>
<email>boyu.mt@taobao.com</email>
</author>
<published>2012-12-10T19:06:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=941919856c11d4dd11d4fcabb4dab58bd2b146bf'/>
<id>urn:sha1:941919856c11d4dd11d4fcabb4dab58bd2b146bf</id>
<content type='text'>
fiemap is used to find the disk layout of a file, as for inline data,
let us just pretend like a file with just one extent.

Signed-off-by: Tao Ma &lt;boyu.mt@taobao.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: let ext4_rename handle inline dir</title>
<updated>2012-12-10T19:06:01Z</updated>
<author>
<name>Tao Ma</name>
<email>boyu.mt@taobao.com</email>
</author>
<published>2012-12-10T19:06:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=32f7f22c0b52e8189fef83986b16dc7abe95f2c4'/>
<id>urn:sha1:32f7f22c0b52e8189fef83986b16dc7abe95f2c4</id>
<content type='text'>
In case we rename a directory, ext4_rename has to read the dir block
and change its dotdot's information.  The old ext4_rename encapsulated
the dir_block read into itself.  So this patch adds a new function
ext4_get_first_dir_block() which gets the dir buffer information so
the ext4_rename can handle it properly.  As it will also change the
parent inode number, we return the parent_de so that ext4_rename() can
handle it more easily.

ext4_find_entry is also changed so that the caller(rename) can tell
whether the found entry is an inlined one or not and journaling the
corresponding buffer head.

Signed-off-by: Tao Ma &lt;boyu.mt@taobao.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: let empty_dir handle inline dir</title>
<updated>2012-12-10T19:06:01Z</updated>
<author>
<name>Tao Ma</name>
<email>boyu.mt@taobao.com</email>
</author>
<published>2012-12-10T19:06:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=61f86638d8a656101bb0f9c41c55d9685f8a2357'/>
<id>urn:sha1:61f86638d8a656101bb0f9c41c55d9685f8a2357</id>
<content type='text'>
empty_dir is used when deleting a dir.  So it should handle inline dir
properly.

Signed-off-by: Tao Ma &lt;boyu.mt@taobao.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: let ext4_delete_entry() handle inline data</title>
<updated>2012-12-10T19:06:00Z</updated>
<author>
<name>Tao Ma</name>
<email>boyu.mt@taobao.com</email>
</author>
<published>2012-12-10T19:06:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9f40fe54635b7533f51993d0f5e7f014fc14d33a'/>
<id>urn:sha1:9f40fe54635b7533f51993d0f5e7f014fc14d33a</id>
<content type='text'>
Signed-off-by: Tao Ma &lt;boyu.mt@taobao.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: let ext4_find_entry handle inline data</title>
<updated>2012-12-10T19:06:00Z</updated>
<author>
<name>Tao Ma</name>
<email>boyu.mt@taobao.com</email>
</author>
<published>2012-12-10T19:06:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e8e948e7802a2ab05c146d3e72a39b93b5718236'/>
<id>urn:sha1:e8e948e7802a2ab05c146d3e72a39b93b5718236</id>
<content type='text'>
Create a new function ext4_find_inline_entry() to handle the case of
inline data.

Signed-off-by: Tao Ma &lt;boyu.mt@taobao.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: let ext4_readdir handle inline data</title>
<updated>2012-12-10T19:05:59Z</updated>
<author>
<name>Tao Ma</name>
<email>boyu.mt@taobao.com</email>
</author>
<published>2012-12-10T19:05:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=65d165d9366dbf783d0102177006d47c8859ba31'/>
<id>urn:sha1:65d165d9366dbf783d0102177006d47c8859ba31</id>
<content type='text'>
For "." and "..", we just call filldir by ourselves
instead of iterating the real dir entry.

Signed-off-by: Tao Ma &lt;boyu.mt@taobao.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
</feed>
