2019-08-19 21:40:48

by Ira Weiny

[permalink] [raw]
Subject: [PATCH] fs/xfs: Fix return code of xfs_break_leased_layouts()

From: Ira Weiny <[email protected]>

The parens used in the while loop would result in error being assigned
the value 1 rather than the intended errno value.

This is required to return -ETXTBSY from follow on break_layout()
changes.

Signed-off-by: Ira Weiny <[email protected]>
---
fs/xfs/xfs_pnfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_pnfs.c b/fs/xfs/xfs_pnfs.c
index 0c954cad7449..a339bd5fa260 100644
--- a/fs/xfs/xfs_pnfs.c
+++ b/fs/xfs/xfs_pnfs.c
@@ -32,7 +32,7 @@ xfs_break_leased_layouts(
struct xfs_inode *ip = XFS_I(inode);
int error;

- while ((error = break_layout(inode, false) == -EWOULDBLOCK)) {
+ while ((error = break_layout(inode, false)) == -EWOULDBLOCK) {
xfs_iunlock(ip, *iolock);
*did_unlock = true;
error = break_layout(inode, true);
--
2.20.1


2019-08-19 23:12:19

by Darrick J. Wong

[permalink] [raw]
Subject: Re: [PATCH] fs/xfs: Fix return code of xfs_break_leased_layouts()

On Mon, Aug 19, 2019 at 02:39:18PM -0700, [email protected] wrote:
> From: Ira Weiny <[email protected]>
>
> The parens used in the while loop would result in error being assigned
> the value 1 rather than the intended errno value.
>
> This is required to return -ETXTBSY from follow on break_layout()
> changes.
>
> Signed-off-by: Ira Weiny <[email protected]>

Doh.
Reviewed-by: Darrick J. Wong <[email protected]>

--D

> ---
> fs/xfs/xfs_pnfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/xfs/xfs_pnfs.c b/fs/xfs/xfs_pnfs.c
> index 0c954cad7449..a339bd5fa260 100644
> --- a/fs/xfs/xfs_pnfs.c
> +++ b/fs/xfs/xfs_pnfs.c
> @@ -32,7 +32,7 @@ xfs_break_leased_layouts(
> struct xfs_inode *ip = XFS_I(inode);
> int error;
>
> - while ((error = break_layout(inode, false) == -EWOULDBLOCK)) {
> + while ((error = break_layout(inode, false)) == -EWOULDBLOCK) {
> xfs_iunlock(ip, *iolock);
> *did_unlock = true;
> error = break_layout(inode, true);
> --
> 2.20.1
>