Message ID | 20200702134650.16550-9-nborisov@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | A bunch of misc cleanups | expand |
On Thu, Jul 02, 2020 at 04:46:48PM +0300, Nikolay Borisov wrote: > Signed-off-by: Nikolay Borisov <nborisov@suse.com> > --- > fs/btrfs/compression.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c > index 48ceab7be0fe..2033ce17e5c6 100644 > --- a/fs/btrfs/compression.c > +++ b/fs/btrfs/compression.c > @@ -703,8 +703,10 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio, > nr_pages = DIV_ROUND_UP(compressed_len, PAGE_SIZE); > cb->compressed_pages = kcalloc(nr_pages, sizeof(struct page *), > GFP_NOFS); > - if (!cb->compressed_pages) > - goto fail1; > + if (!cb->compressed_pages) { > + kfree(cb); > + return BLK_STS_RESOURCE; No please, that's exactly why there is th exit block so we don't have to repeat the cleanup functions. > + } > > for (pg_index = 0; pg_index < nr_pages; pg_index++) { > cb->compressed_pages[pg_index] = alloc_page(GFP_NOFS | > @@ -806,7 +808,6 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio, > } > > kfree(cb->compressed_pages); > -fail1: > kfree(cb); > out: > free_extent_map(em); > -- > 2.17.1
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c index 48ceab7be0fe..2033ce17e5c6 100644 --- a/fs/btrfs/compression.c +++ b/fs/btrfs/compression.c @@ -703,8 +703,10 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio, nr_pages = DIV_ROUND_UP(compressed_len, PAGE_SIZE); cb->compressed_pages = kcalloc(nr_pages, sizeof(struct page *), GFP_NOFS); - if (!cb->compressed_pages) - goto fail1; + if (!cb->compressed_pages) { + kfree(cb); + return BLK_STS_RESOURCE; + } for (pg_index = 0; pg_index < nr_pages; pg_index++) { cb->compressed_pages[pg_index] = alloc_page(GFP_NOFS | @@ -806,7 +808,6 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio, } kfree(cb->compressed_pages); -fail1: kfree(cb); out: free_extent_map(em);
Signed-off-by: Nikolay Borisov <nborisov@suse.com> --- fs/btrfs/compression.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)