Loading fs/gfs2/dir.c +8 −32 Original line number Original line Diff line number Diff line Loading @@ -365,22 +365,15 @@ static __be64 *gfs2_dir_get_hash_table(struct gfs2_inode *ip) ret = gfs2_dir_read_data(ip, hc, hsize); ret = gfs2_dir_read_data(ip, hc, hsize); if (ret < 0) { if (ret < 0) { if (is_vmalloc_addr(hc)) kvfree(hc); vfree(hc); else kfree(hc); return ERR_PTR(ret); return ERR_PTR(ret); } } spin_lock(&inode->i_lock); spin_lock(&inode->i_lock); if (ip->i_hash_cache) { if (ip->i_hash_cache) if (is_vmalloc_addr(hc)) kvfree(hc); vfree(hc); else else kfree(hc); } else { ip->i_hash_cache = hc; ip->i_hash_cache = hc; } spin_unlock(&inode->i_lock); spin_unlock(&inode->i_lock); return ip->i_hash_cache; return ip->i_hash_cache; Loading @@ -396,10 +389,7 @@ void gfs2_dir_hash_inval(struct gfs2_inode *ip) { { __be64 *hc = ip->i_hash_cache; __be64 *hc = ip->i_hash_cache; ip->i_hash_cache = NULL; ip->i_hash_cache = NULL; if (is_vmalloc_addr(hc)) kvfree(hc); vfree(hc); else kfree(hc); } } static inline int gfs2_dirent_sentinel(const struct gfs2_dirent *dent) static inline int gfs2_dirent_sentinel(const struct gfs2_dirent *dent) Loading Loading @@ -1168,10 +1158,7 @@ static int dir_double_exhash(struct gfs2_inode *dip) gfs2_dinode_out(dip, dibh->b_data); gfs2_dinode_out(dip, dibh->b_data); brelse(dibh); brelse(dibh); out_kfree: out_kfree: if (is_vmalloc_addr(hc2)) kvfree(hc2); vfree(hc2); else kfree(hc2); return error; return error; } } Loading Loading @@ -1302,14 +1289,6 @@ static void *gfs2_alloc_sort_buffer(unsigned size) return ptr; 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, static int gfs2_dir_read_leaf(struct inode *inode, struct dir_context *ctx, int *copied, unsigned *depth, int *copied, unsigned *depth, u64 leaf_no) u64 leaf_no) Loading Loading @@ -1393,7 +1372,7 @@ static int gfs2_dir_read_leaf(struct inode *inode, struct dir_context *ctx, out_free: out_free: for(i = 0; i < leaf; i++) for(i = 0; i < leaf; i++) brelse(larr[i]); brelse(larr[i]); gfs2_free_sort_buffer(larr); kvfree(larr); out: out: return error; return error; } } Loading Loading @@ -2004,10 +1983,7 @@ static int leaf_dealloc(struct gfs2_inode *dip, u32 index, u32 len, gfs2_rlist_free(&rlist); gfs2_rlist_free(&rlist); gfs2_quota_unhold(dip); gfs2_quota_unhold(dip); out: out: if (is_vmalloc_addr(ht)) kvfree(ht); vfree(ht); else kfree(ht); return error; return error; } } Loading fs/gfs2/quota.c +2 −7 Original line number Original line Diff line number Diff line Loading @@ -1360,14 +1360,9 @@ void gfs2_quota_cleanup(struct gfs2_sbd *sdp) gfs2_assert_warn(sdp, !atomic_read(&sdp->sd_quota_count)); gfs2_assert_warn(sdp, !atomic_read(&sdp->sd_quota_count)); if (sdp->sd_quota_bitmap) { kvfree(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; sdp->sd_quota_bitmap = NULL; } } } static void quotad_error(struct gfs2_sbd *sdp, const char *msg, int error) static void quotad_error(struct gfs2_sbd *sdp, const char *msg, int error) { { Loading Loading
fs/gfs2/dir.c +8 −32 Original line number Original line Diff line number Diff line Loading @@ -365,22 +365,15 @@ static __be64 *gfs2_dir_get_hash_table(struct gfs2_inode *ip) ret = gfs2_dir_read_data(ip, hc, hsize); ret = gfs2_dir_read_data(ip, hc, hsize); if (ret < 0) { if (ret < 0) { if (is_vmalloc_addr(hc)) kvfree(hc); vfree(hc); else kfree(hc); return ERR_PTR(ret); return ERR_PTR(ret); } } spin_lock(&inode->i_lock); spin_lock(&inode->i_lock); if (ip->i_hash_cache) { if (ip->i_hash_cache) if (is_vmalloc_addr(hc)) kvfree(hc); vfree(hc); else else kfree(hc); } else { ip->i_hash_cache = hc; ip->i_hash_cache = hc; } spin_unlock(&inode->i_lock); spin_unlock(&inode->i_lock); return ip->i_hash_cache; return ip->i_hash_cache; Loading @@ -396,10 +389,7 @@ void gfs2_dir_hash_inval(struct gfs2_inode *ip) { { __be64 *hc = ip->i_hash_cache; __be64 *hc = ip->i_hash_cache; ip->i_hash_cache = NULL; ip->i_hash_cache = NULL; if (is_vmalloc_addr(hc)) kvfree(hc); vfree(hc); else kfree(hc); } } static inline int gfs2_dirent_sentinel(const struct gfs2_dirent *dent) static inline int gfs2_dirent_sentinel(const struct gfs2_dirent *dent) Loading Loading @@ -1168,10 +1158,7 @@ static int dir_double_exhash(struct gfs2_inode *dip) gfs2_dinode_out(dip, dibh->b_data); gfs2_dinode_out(dip, dibh->b_data); brelse(dibh); brelse(dibh); out_kfree: out_kfree: if (is_vmalloc_addr(hc2)) kvfree(hc2); vfree(hc2); else kfree(hc2); return error; return error; } } Loading Loading @@ -1302,14 +1289,6 @@ static void *gfs2_alloc_sort_buffer(unsigned size) return ptr; 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, static int gfs2_dir_read_leaf(struct inode *inode, struct dir_context *ctx, int *copied, unsigned *depth, int *copied, unsigned *depth, u64 leaf_no) u64 leaf_no) Loading Loading @@ -1393,7 +1372,7 @@ static int gfs2_dir_read_leaf(struct inode *inode, struct dir_context *ctx, out_free: out_free: for(i = 0; i < leaf; i++) for(i = 0; i < leaf; i++) brelse(larr[i]); brelse(larr[i]); gfs2_free_sort_buffer(larr); kvfree(larr); out: out: return error; return error; } } Loading Loading @@ -2004,10 +1983,7 @@ static int leaf_dealloc(struct gfs2_inode *dip, u32 index, u32 len, gfs2_rlist_free(&rlist); gfs2_rlist_free(&rlist); gfs2_quota_unhold(dip); gfs2_quota_unhold(dip); out: out: if (is_vmalloc_addr(ht)) kvfree(ht); vfree(ht); else kfree(ht); return error; return error; } } Loading
fs/gfs2/quota.c +2 −7 Original line number Original line Diff line number Diff line Loading @@ -1360,14 +1360,9 @@ void gfs2_quota_cleanup(struct gfs2_sbd *sdp) gfs2_assert_warn(sdp, !atomic_read(&sdp->sd_quota_count)); gfs2_assert_warn(sdp, !atomic_read(&sdp->sd_quota_count)); if (sdp->sd_quota_bitmap) { kvfree(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; sdp->sd_quota_bitmap = NULL; } } } static void quotad_error(struct gfs2_sbd *sdp, const char *msg, int error) static void quotad_error(struct gfs2_sbd *sdp, const char *msg, int error) { { Loading