GFS2: use kvfree() instead of open-coding it
authorAl Viro <viro@ZenIV.linux.org.uk>
Thu, 20 Nov 2014 05:18:38 +0000 (05:18 +0000)
committerSteven Whitehouse <swhiteho@redhat.com>
Thu, 20 Nov 2014 10:29:14 +0000 (10:29 +0000)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/dir.c
fs/gfs2/quota.c

index 5d4261f..c247fed 100644 (file)
@@ -365,22 +365,15 @@ static __be64 *gfs2_dir_get_hash_table(struct gfs2_inode *ip)
 
        ret = gfs2_dir_read_data(ip, hc, hsize);
        if (ret < 0) {
-               if (is_vmalloc_addr(hc))
-                       vfree(hc);
-               else
-                       kfree(hc);
+               kvfree(hc);
                return ERR_PTR(ret);
        }
 
        spin_lock(&inode->i_lock);
-       if (ip->i_hash_cache) {
-               if (is_vmalloc_addr(hc))
-                       vfree(hc);
-               else
-                       kfree(hc);
-       } else {
+       if (ip->i_hash_cache)
+               kvfree(hc);
+       else
                ip->i_hash_cache = hc;
-       }
        spin_unlock(&inode->i_lock);
 
        return ip->i_hash_cache;
@@ -396,10 +389,7 @@ void gfs2_dir_hash_inval(struct gfs2_inode *ip)
 {
        __be64 *hc = ip->i_hash_cache;
        ip->i_hash_cache = NULL;
-       if (is_vmalloc_addr(hc))
-               vfree(hc);
-       else
-               kfree(hc);
+       kvfree(hc);
 }
 
 static inline int gfs2_dirent_sentinel(const struct gfs2_dirent *dent)
@@ -1168,10 +1158,7 @@ fail:
        gfs2_dinode_out(dip, dibh->b_data);
        brelse(dibh);
 out_kfree:
-       if (is_vmalloc_addr(hc2))
-               vfree(hc2);
-       else
-               kfree(hc2);
+       kvfree(hc2);
        return error;
 }
 
@@ -1302,14 +1289,6 @@ static void *gfs2_alloc_sort_buffer(unsigned size)
        return ptr;
 }
 
-static void gfs2_free_sort_buffer(void *ptr)
-{
-       if (is_vmalloc_addr(ptr))
-               vfree(ptr);
-       else
-               kfree(ptr);
-}
-
 static int gfs2_dir_read_leaf(struct inode *inode, struct dir_context *ctx,
                              int *copied, unsigned *depth,
                              u64 leaf_no)
@@ -1393,7 +1372,7 @@ static int gfs2_dir_read_leaf(struct inode *inode, struct dir_context *ctx,
 out_free:
        for(i = 0; i < leaf; i++)
                brelse(larr[i]);
-       gfs2_free_sort_buffer(larr);
+       kvfree(larr);
 out:
        return error;
 }
@@ -2004,10 +1983,7 @@ out_rlist:
        gfs2_rlist_free(&rlist);
        gfs2_quota_unhold(dip);
 out:
-       if (is_vmalloc_addr(ht))
-               vfree(ht);
-       else
-               kfree(ht);
+       kvfree(ht);
        return error;
 }
 
index 64b29f7..c8b148b 100644 (file)
@@ -1360,13 +1360,8 @@ void gfs2_quota_cleanup(struct gfs2_sbd *sdp)
 
        gfs2_assert_warn(sdp, !atomic_read(&sdp->sd_quota_count));
 
-       if (sdp->sd_quota_bitmap) {
-               if (is_vmalloc_addr(sdp->sd_quota_bitmap))
-                       vfree(sdp->sd_quota_bitmap);
-               else
-                       kfree(sdp->sd_quota_bitmap);
-               sdp->sd_quota_bitmap = NULL;
-       }
+       kvfree(sdp->sd_quota_bitmap);
+       sdp->sd_quota_bitmap = NULL;
 }
 
 static void quotad_error(struct gfs2_sbd *sdp, const char *msg, int error)