mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 19:19:32 +03:00
Fix cred leak in zpl_fallocate_common
This is caught by kmemleak when running compress_004_pos Reviewed-by: Tim Chase <tim@chase2k.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Chunwei Chen <david.chen@osnexus.com> Closes #5244 Closes #5330
This commit is contained in:
parent
66392d81f5
commit
9fa4db44b7
@ -650,8 +650,6 @@ zpl_fallocate_common(struct inode *ip, int mode, loff_t offset, loff_t len)
|
|||||||
if (mode != (FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE))
|
if (mode != (FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE))
|
||||||
return (error);
|
return (error);
|
||||||
|
|
||||||
crhold(cr);
|
|
||||||
|
|
||||||
if (offset < 0 || len <= 0)
|
if (offset < 0 || len <= 0)
|
||||||
return (-EINVAL);
|
return (-EINVAL);
|
||||||
|
|
||||||
@ -670,6 +668,7 @@ zpl_fallocate_common(struct inode *ip, int mode, loff_t offset, loff_t len)
|
|||||||
bf.l_len = len;
|
bf.l_len = len;
|
||||||
bf.l_pid = 0;
|
bf.l_pid = 0;
|
||||||
|
|
||||||
|
crhold(cr);
|
||||||
cookie = spl_fstrans_mark();
|
cookie = spl_fstrans_mark();
|
||||||
error = -zfs_space(ip, F_FREESP, &bf, FWRITE, offset, cr);
|
error = -zfs_space(ip, F_FREESP, &bf, FWRITE, offset, cr);
|
||||||
spl_fstrans_unmark(cookie);
|
spl_fstrans_unmark(cookie);
|
||||||
|
Loading…
Reference in New Issue
Block a user