ceph: Fix NULL vs IS_ERR checking in ceph_getattr

Message ID 20221110031311.1629288-1-linmq006@gmail.com
State New
Headers
Series ceph: Fix NULL vs IS_ERR checking in ceph_getattr |

Commit Message

Miaoqian Lin Nov. 10, 2022, 3:13 a.m. UTC
  The ceph_lookup_inode() function return error pointers on error
instead of NULL.
Use IS_ERR() to check the return value to fix this.

Fixes: aa87052dd965 ("ceph: fix incorrectly showing the .snap size for stat")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
---
 fs/ceph/inode.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Xiubo Li Nov. 10, 2022, 5:44 a.m. UTC | #1
Hi Miaoqian,

Thanks for your patch. This has already been fixed by Dan Carpenter 
weeks ago and already in the ceph-client's testing branch, please see [1]:

[1] 
https://github.com/ceph/ceph-client/commit/ffc4d66a34bb5bd76d0a3f83bebf500d96a8e37c

BRs

- Xiubo

On 10/11/2022 11:13, Miaoqian Lin wrote:
> The ceph_lookup_inode() function return error pointers on error
> instead of NULL.
> Use IS_ERR() to check the return value to fix this.
>
> Fixes: aa87052dd965 ("ceph: fix incorrectly showing the .snap size for stat")
> Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
> ---
>   fs/ceph/inode.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
> index 4af5e55abc15..bad9eeb6a1a5 100644
> --- a/fs/ceph/inode.c
> +++ b/fs/ceph/inode.c
> @@ -2492,7 +2492,7 @@ int ceph_getattr(struct user_namespace *mnt_userns, const struct path *path,
>   			struct inode *parent;
>   
>   			parent = ceph_lookup_inode(sb, ceph_ino(inode));
> -			if (!parent)
> +			if (IS_ERR(parent))
>   				return PTR_ERR(parent);
>   
>   			pci = ceph_inode(parent);
  
Ilya Dryomov Nov. 10, 2022, 11:24 a.m. UTC | #2
On Thu, Nov 10, 2022 at 6:45 AM Xiubo Li <xiubli@redhat.com> wrote:
>
> Hi Miaoqian,
>
> Thanks for your patch. This has already been fixed by Dan Carpenter
> weeks ago and already in the ceph-client's testing branch, please see [1]:
>
> [1]
> https://github.com/ceph/ceph-client/commit/ffc4d66a34bb5bd76d0a3f83bebf500d96a8e37c

It's also present in linux-next:

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=ffc4d66a34bb5bd76d0a3f83bebf500d96a8e37c

Thanks,

                Ilya
  

Patch

diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index 4af5e55abc15..bad9eeb6a1a5 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -2492,7 +2492,7 @@  int ceph_getattr(struct user_namespace *mnt_userns, const struct path *path,
 			struct inode *parent;
 
 			parent = ceph_lookup_inode(sb, ceph_ino(inode));
-			if (!parent)
+			if (IS_ERR(parent))
 				return PTR_ERR(parent);
 
 			pci = ceph_inode(parent);