forked from luck/tmp_suning_uos_patched
[PATCH] freevxfs: fix buffer_head leak
- fix a buffer_head leak in vxfs_getfsh() - s/SLAB_KERNEL/GFP_KERNEL/ - check sb_bread() return value - drop pointless buffer-mapped() test. Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
f220ab2a51
commit
ba03bda81e
|
@ -78,17 +78,18 @@ vxfs_getfsh(struct inode *ip, int which)
|
||||||
struct buffer_head *bp;
|
struct buffer_head *bp;
|
||||||
|
|
||||||
bp = vxfs_bread(ip, which);
|
bp = vxfs_bread(ip, which);
|
||||||
if (buffer_mapped(bp)) {
|
if (bp) {
|
||||||
struct vxfs_fsh *fhp;
|
struct vxfs_fsh *fhp;
|
||||||
|
|
||||||
if (!(fhp = kmalloc(sizeof(*fhp), SLAB_KERNEL)))
|
if (!(fhp = kmalloc(sizeof(*fhp), GFP_KERNEL)))
|
||||||
return NULL;
|
goto out;
|
||||||
memcpy(fhp, bp->b_data, sizeof(*fhp));
|
memcpy(fhp, bp->b_data, sizeof(*fhp));
|
||||||
|
|
||||||
brelse(bp);
|
put_bh(bp);
|
||||||
return (fhp);
|
return (fhp);
|
||||||
}
|
}
|
||||||
|
out:
|
||||||
|
brelse(bp);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user