]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - fs/nilfs2/mdt.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / fs / nilfs2 / mdt.c
index 39a5b84e2c9fbbac846ec50133b496798220373a..a0babd2bff6a2e03a924e45110ff1a8698f59fd6 100644 (file)
@@ -237,8 +237,6 @@ static int nilfs_mdt_read_block(struct inode *inode, unsigned long block,
  *
  * %-ENOENT - the specified block does not exist (hole block)
  *
- * %-EINVAL - bmap is broken. (the caller should call nilfs_error())
- *
  * %-EROFS - Read only filesystem (for create mode)
  */
 int nilfs_mdt_get_block(struct inode *inode, unsigned long blkoff, int create,
@@ -273,8 +271,6 @@ int nilfs_mdt_get_block(struct inode *inode, unsigned long blkoff, int create,
  * %-ENOMEM - Insufficient memory available.
  *
  * %-EIO - I/O error
- *
- * %-EINVAL - bmap is broken. (the caller should call nilfs_error())
  */
 int nilfs_mdt_delete_block(struct inode *inode, unsigned long block)
 {
@@ -350,8 +346,6 @@ int nilfs_mdt_forget_block(struct inode *inode, unsigned long block)
  * %-EIO - I/O error
  *
  * %-ENOENT - the specified block does not exist (hole block)
- *
- * %-EINVAL - bmap is broken. (the caller should call nilfs_error())
  */
 int nilfs_mdt_mark_block_dirty(struct inode *inode, unsigned long block)
 {
@@ -460,9 +454,9 @@ int nilfs_mdt_setup_shadow_map(struct inode *inode,
        struct backing_dev_info *bdi = inode->i_sb->s_bdi;
 
        INIT_LIST_HEAD(&shadow->frozen_buffers);
-       nilfs_mapping_init_once(&shadow->frozen_data);
+       address_space_init_once(&shadow->frozen_data);
        nilfs_mapping_init(&shadow->frozen_data, bdi, &shadow_map_aops);
-       nilfs_mapping_init_once(&shadow->frozen_btnodes);
+       address_space_init_once(&shadow->frozen_btnodes);
        nilfs_mapping_init(&shadow->frozen_btnodes, bdi, &shadow_map_aops);
        mi->mi_shadow = shadow;
        return 0;
@@ -499,31 +493,29 @@ int nilfs_mdt_freeze_buffer(struct inode *inode, struct buffer_head *bh)
        struct buffer_head *bh_frozen;
        struct page *page;
        int blkbits = inode->i_blkbits;
-       int ret = -ENOMEM;
 
        page = grab_cache_page(&shadow->frozen_data, bh->b_page->index);
        if (!page)
-               return ret;
+               return -ENOMEM;
 
        if (!page_has_buffers(page))
                create_empty_buffers(page, 1 << blkbits, 0);
 
        bh_frozen = nilfs_page_get_nth_block(page, bh_offset(bh) >> blkbits);
-       if (bh_frozen) {
-               if (!buffer_uptodate(bh_frozen))
-                       nilfs_copy_buffer(bh_frozen, bh);
-               if (list_empty(&bh_frozen->b_assoc_buffers)) {
-                       list_add_tail(&bh_frozen->b_assoc_buffers,
-                                     &shadow->frozen_buffers);
-                       set_buffer_nilfs_redirected(bh);
-               } else {
-                       brelse(bh_frozen); /* already frozen */
-               }
-               ret = 0;
+
+       if (!buffer_uptodate(bh_frozen))
+               nilfs_copy_buffer(bh_frozen, bh);
+       if (list_empty(&bh_frozen->b_assoc_buffers)) {
+               list_add_tail(&bh_frozen->b_assoc_buffers,
+                             &shadow->frozen_buffers);
+               set_buffer_nilfs_redirected(bh);
+       } else {
+               brelse(bh_frozen); /* already frozen */
        }
+
        unlock_page(page);
        page_cache_release(page);
-       return ret;
+       return 0;
 }
 
 struct buffer_head *