Merge tag 'gfs2-4.7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2...
[platform/kernel/linux-exynos.git] / fs / gfs2 / aops.c
index 8524c0e..37b7bc1 100644 (file)
@@ -977,7 +977,7 @@ static void gfs2_discard(struct gfs2_sbd *sdp, struct buffer_head *bh)
                if (!list_empty(&bd->bd_list) && !buffer_pinned(bh))
                        list_del_init(&bd->bd_list);
                else
-                       gfs2_remove_from_journal(bh, current->journal_info, 0);
+                       gfs2_remove_from_journal(bh, REMOVE_JDATA);
        }
        bh->b_bdev = NULL;
        clear_buffer_mapped(bh);
@@ -1063,7 +1063,7 @@ static ssize_t gfs2_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
        gfs2_holder_init(ip->i_gl, LM_ST_DEFERRED, 0, &gh);
        rv = gfs2_glock_nq(&gh);
        if (rv)
-               return rv;
+               goto out_uninit;
        rv = gfs2_ok_for_dio(ip, offset);
        if (rv != 1)
                goto out; /* dio not valid, fall back to buffered i/o */
@@ -1102,6 +1102,7 @@ static ssize_t gfs2_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
                                  gfs2_get_block_direct, NULL, NULL, 0);
 out:
        gfs2_glock_dq(&gh);
+out_uninit:
        gfs2_holder_uninit(&gh);
        return rv;
 }