Re: [bug report] fs/ntfs3: Add initialization of super block

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 24, 2021 at 10:58:19AM +0300, Dan Carpenter wrote:
> Hello Konstantin Komarov,
> 
> The patch 82cae269cfa9: "fs/ntfs3: Add initialization of super block"
> from Aug 13, 2021, leads to the following
> Smatch static checker warning:
> 
> 	fs/ntfs3/index.c:238 bmp_buf_get()
> 	warn: 'bh' could be an error pointer
> 
> fs/ntfs3/index.c
>     229 	data_size = le64_to_cpu(b->nres.data_size);
>     230 	if (WARN_ON(off >= data_size)) {
>     231 		/* looks like filesystem error */
>     232 		return -EINVAL;
>     233 	}
>     234 
>     235 	valid_size = le64_to_cpu(b->nres.valid_size);
>     236 
>     237 	bh = ntfs_bread_run(sbi, &indx->bitmap_run, off);
> --> 238 	if (!bh)
>     239 		return -EIO;
>     240 
>     241 	if (IS_ERR(bh))
> 
> This is not a bug, but it is wrong style.  When a function returns both
> error pointers and NULL then the NULL return is means the feature is
> disabled.  It's not an error.  Just that the feature is turned off
> deliberately in the Kconfig or whatever.  Don't print an error message,
> just continue with the feature disabled as the admin has requested.
> 
> But here NULL is just an error.  The ntfs_bread_run() should do:

Agreed.

> 
> 	bh = ntfs_bread();
> 	if (!bh)
> 		return ERR_PTR(-EIO);
> 	return bh;

Can also be like below but probably your version is more readable.

return ntfs_bread(sb, lbo >> sb->s_blocksize_bits) ? : ERR_PTR(-EIO);

> 
>     242 		return PTR_ERR(bh);
>     243 
>     244 	bbuf->bh = bh;
>     245 
> 
> regards,
> dan carpenter




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux