]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/nilfs2/gcinode.c
Merge branch 'for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/mason...
[karo-tx-linux.git] / fs / nilfs2 / gcinode.c
index 693aded72498e2019fd36e96630b114db89ea172..853a831dcde0890481d45fdfadf89ff8a35b7671 100644 (file)
@@ -101,7 +101,7 @@ int nilfs_gccache_submit_read_data(struct inode *inode, sector_t blkoff,
        bh->b_blocknr = pbn;
        bh->b_end_io = end_buffer_read_sync;
        get_bh(bh);
-       submit_bh(READ, bh);
+       submit_bh(REQ_OP_READ, 0, bh);
        if (vbn)
                bh->b_blocknr = vbn;
  out:
@@ -138,7 +138,8 @@ int nilfs_gccache_submit_read_node(struct inode *inode, sector_t pbn,
        int ret;
 
        ret = nilfs_btnode_submit_block(&NILFS_I(inode)->i_btnode_cache,
-                                       vbn ? : pbn, pbn, READ, out_bh, &pbn);
+                                       vbn ? : pbn, pbn, REQ_OP_READ, 0,
+                                       out_bh, &pbn);
        if (ret == -EEXIST) /* internal code (cache hit) */
                ret = 0;
        return ret;
@@ -147,8 +148,15 @@ int nilfs_gccache_submit_read_node(struct inode *inode, sector_t pbn,
 int nilfs_gccache_wait_and_mark_dirty(struct buffer_head *bh)
 {
        wait_on_buffer(bh);
-       if (!buffer_uptodate(bh))
+       if (!buffer_uptodate(bh)) {
+               struct inode *inode = bh->b_page->mapping->host;
+
+               nilfs_msg(inode->i_sb, KERN_ERR,
+                         "I/O error reading %s block for GC (ino=%lu, vblocknr=%llu)",
+                         buffer_nilfs_node(bh) ? "node" : "data",
+                         inode->i_ino, (unsigned long long)bh->b_blocknr);
                return -EIO;
+       }
        if (buffer_dirty(bh))
                return -EEXIST;