<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs/nilfs2/bmap.c, branch v3.2.8</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs/nilfs2/bmap.c?h=v3.2.8</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs/nilfs2/bmap.c?h=v3.2.8'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-05-10T13:21:56Z</updated>
<entry>
<title>nilfs2: get rid of NILFS_I_NILFS</title>
<updated>2011-05-10T13:21:56Z</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2011-05-05T03:56:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0ef28f9aec4dccfba33cef74412f601c1b48b658'/>
<id>urn:sha1:0ef28f9aec4dccfba33cef74412f601c1b48b658</id>
<content type='text'>
This replaces all references of NILFS_I_NILFS(inode)-&gt;ns_bdev with
inode-&gt;i_sb-&gt;s_bdev and unfolds remaining uses of NILFS_I_NILFS inline
function.

Before 2.6.37, referring to a nilfs object from inodes needed a
conditional judgement, and NILFS_I_NILFS was helpful to simplify it.
But now we can simply do it by going through a super block instance
like inode-&gt;i_sb-&gt;s_fs_info.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
</entry>
<entry>
<title>nilfs2: get rid of nilfs_sb_info structure</title>
<updated>2011-03-09T02:54:26Z</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2011-03-09T02:05:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e3154e9748f0f337e9f6ff9dc7d7bf24d426bd1a'/>
<id>urn:sha1:e3154e9748f0f337e9f6ff9dc7d7bf24d426bd1a</id>
<content type='text'>
This directly uses sb-&gt;s_fs_info to keep a nilfs filesystem object and
fully removes the intermediate nilfs_sb_info structure.  With this
change, the hierarchy of on-memory structures of nilfs will be
simplified as follows:

Before:
  super_block
       -&gt; nilfs_sb_info
             -&gt; the_nilfs
                   -&gt; cptree --+-&gt; nilfs_root (current file system)
                               +-&gt; nilfs_root (snapshot A)
                               +-&gt; nilfs_root (snapshot B)
                               :
             -&gt; nilfs_sc_info (log writer structure)
After:
  super_block
       -&gt; the_nilfs
             -&gt; cptree --+-&gt; nilfs_root (current file system)
                         +-&gt; nilfs_root (snapshot A)
                         +-&gt; nilfs_root (snapshot B)
                         :
             -&gt; nilfs_sc_info (log writer structure)

The reason why we didn't design so from the beginning is because the
initial shape also differed from the above.  The early hierachy was
composed of "per-mount-point" super_block -&gt; nilfs_sb_info pairs and a
shared nilfs object.  On the kernel 2.6.37, it was changed to the
current shape in order to unify super block instances into one per
device, and this cleanup became applicable as the result.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
</entry>
<entry>
<title>nilfs2: record used amount of each checkpoint in checkpoint list</title>
<updated>2011-03-08T05:58:31Z</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2011-03-04T15:19:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=be667377a8b8cd73e1b923f33fb5be4034aa4bfa'/>
<id>urn:sha1:be667377a8b8cd73e1b923f33fb5be4034aa4bfa</id>
<content type='text'>
This records the number of used blocks per checkpoint in each
checkpoint entry of cpfile.  Even though userland tools can get the
block count via nilfs_get_cpinfo ioctl, it was not updated by the
nilfs2 kernel code.  This fixes the issue and makes it available for
userland tools to calculate used amount per checkpoint.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
Cc: Jiro SEKIBA &lt;jir@unicus.jp&gt;
</content>
</entry>
<entry>
<title>nilfs2: unfold nilfs_dat_inode function</title>
<updated>2011-01-10T05:38:39Z</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2010-12-26T15:07:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=365e215ce1f154e288ff0f7c9acbdf5421f57949'/>
<id>urn:sha1:365e215ce1f154e288ff0f7c9acbdf5421f57949</id>
<content type='text'>
nilfs_dat_inode function was a wrapper to switch between normal dat
inode and gcdat, a clone of the dat inode for garbage collection.

This function got obsolete when the gcdat inode was removed, and now
we can access the dat inode directly from a nilfs object.  So, we will
unfold the wrapper and remove it.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
</entry>
<entry>
<title>nilfs2: call nilfs_error inside bmap routines</title>
<updated>2011-01-10T05:05:45Z</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2010-11-19T06:26:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e828949e5b42bfd234ee537cdb7c5e3a577958a3'/>
<id>urn:sha1:e828949e5b42bfd234ee537cdb7c5e3a577958a3</id>
<content type='text'>
Some functions using nilfs bmap routines can wrongly return invalid
argument error (i.e. -EINVAL) that bmap returns as an internal code
for btree corruption.

This fixes the issue by catching and converting the internal EINVAL to
EIO and calling nilfs_error function inside bmap routines.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
</entry>
<entry>
<title>nilfs2: get rid of GCDAT inode</title>
<updated>2010-10-23T00:24:38Z</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2010-08-29T03:44:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c1c1d7092072093ad960db2f6c08f06705c57fa4'/>
<id>urn:sha1:c1c1d7092072093ad960db2f6c08f06705c57fa4</id>
<content type='text'>
This applies prepared rollback function and redirect function of
metadata file to DAT file, and eliminates GCDAT inode.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
</entry>
<entry>
<title>nilfs2: add routines to save and restore bmap state</title>
<updated>2010-10-23T00:24:37Z</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2010-08-30T14:42:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a8070dd365dd995f6139a2fc3aeee10159bdcc45'/>
<id>urn:sha1:a8070dd365dd995f6139a2fc3aeee10159bdcc45</id>
<content type='text'>
This adds routines to save and restore the state of bmap structure.
The bmap state is stored in a given nilfs_bmap_store object.

These routines will be used to roll back the state of dat inode
without using gcdat inode.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
</entry>
<entry>
<title>nilfs2: get rid of nilfs_bmap_union</title>
<updated>2010-07-23T01:02:14Z</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2010-07-10T11:52:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=05d0e94b66dbdf9d90371b39dc7a6b390ba74d41'/>
<id>urn:sha1:05d0e94b66dbdf9d90371b39dc7a6b390ba74d41</id>
<content type='text'>
This removes nilfs_bmap_union and finally unifies three structures and
the union in bmap/btree code into one.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
</entry>
<entry>
<title>nilfs2: trivial coding style fix</title>
<updated>2009-12-25T04:01:50Z</updated>
<author>
<name>Jiro SEKIBA</name>
<email>jir@sekiba.com</email>
</author>
<published>2009-12-06T06:43:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5ee581483246e832ca5a9fc1ac669bba0b6ec468'/>
<id>urn:sha1:5ee581483246e832ca5a9fc1ac669bba0b6ec468</id>
<content type='text'>
This is a trivial style fix patch to mend errors/warnings
reported by "checkpatch.pl --file".

Signed-off-by: Jiro SEKIBA &lt;jir@unicus.jp&gt;
Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
</entry>
<entry>
<title>nilfs2: move out mark_inode_dirty calls from bmap routines</title>
<updated>2009-11-20T01:05:47Z</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2009-11-05T16:00:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9cb4e0d2b99e8b0e5e269d898ae6ab1967647c5a'/>
<id>urn:sha1:9cb4e0d2b99e8b0e5e269d898ae6ab1967647c5a</id>
<content type='text'>
Previously, nilfs_bmap_add_blocks() and nilfs_bmap_sub_blocks() called
mark_inode_dirty() after they changed the number of data blocks.

This moves these calls outside bmap outermost functions like
nilfs_bmap_insert() or nilfs_bmap_truncate().

This will mitigate overhead for truncate or delete operation since
they repeatedly remove set of blocks.  Nearly 10 percent improvement
was observed for removal of a large file:

 # dd if=/dev/zero of=/test/aaa bs=1M count=512
 # time rm /test/aaa

  real  2.968s -&gt; 2.705s

Further optimization may be possible by eliminating these
mark_inode_dirty() uses though I avoid mixing separate changes here.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
</entry>
</feed>
