diff mbox series

[18/30] orangefs: Remove calls to set/clear the error flag

Message ID 20240420025029.2166544-19-willy@infradead.org (mailing list archive)
State New
Headers show
Series Remove PG_error flag | expand

Commit Message

Matthew Wilcox April 20, 2024, 2:50 a.m. UTC
Nobody checks the error flag on orangefs folios, so stop setting and
clearing it.  We can also use folio_end_read() to simplify
orangefs_read_folio().

Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: devel@lists.orangefs.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/orangefs/inode.c           | 13 +++----------
 fs/orangefs/orangefs-bufmap.c |  4 +---
 2 files changed, 4 insertions(+), 13 deletions(-)

Comments

Mike Marshall April 24, 2024, 6:02 p.m. UTC | #1
I added this patch to 6.9.0-rc5 and ran it through xfstests with no problems...

-Mike

On Fri, Apr 19, 2024 at 10:50 PM Matthew Wilcox (Oracle)
<willy@infradead.org> wrote:
>
> Nobody checks the error flag on orangefs folios, so stop setting and
> clearing it.  We can also use folio_end_read() to simplify
> orangefs_read_folio().
>
> Cc: Mike Marshall <hubcap@omnibond.com>
> Cc: Martin Brandenburg <martin@omnibond.com>
> Cc: devel@lists.orangefs.org
> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
> ---
>  fs/orangefs/inode.c           | 13 +++----------
>  fs/orangefs/orangefs-bufmap.c |  4 +---
>  2 files changed, 4 insertions(+), 13 deletions(-)
>
> diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c
> index 085912268442..fdb9b65db1de 100644
> --- a/fs/orangefs/inode.c
> +++ b/fs/orangefs/inode.c
> @@ -56,7 +56,6 @@ static int orangefs_writepage_locked(struct page *page,
>         ret = wait_for_direct_io(ORANGEFS_IO_WRITE, inode, &off, &iter, wlen,
>             len, wr, NULL, NULL);
>         if (ret < 0) {
> -               SetPageError(page);
>                 mapping_set_error(page->mapping, ret);
>         } else {
>                 ret = 0;
> @@ -119,7 +118,6 @@ static int orangefs_writepages_work(struct orangefs_writepages *ow,
>             0, &wr, NULL, NULL);
>         if (ret < 0) {
>                 for (i = 0; i < ow->npages; i++) {
> -                       SetPageError(ow->pages[i]);
>                         mapping_set_error(ow->pages[i]->mapping, ret);
>                         if (PagePrivate(ow->pages[i])) {
>                                 wrp = (struct orangefs_write_range *)
> @@ -303,15 +301,10 @@ static int orangefs_read_folio(struct file *file, struct folio *folio)
>         iov_iter_zero(~0U, &iter);
>         /* takes care of potential aliasing */
>         flush_dcache_folio(folio);
> -       if (ret < 0) {
> -               folio_set_error(folio);
> -       } else {
> -               folio_mark_uptodate(folio);
> +       if (ret > 0)
>                 ret = 0;
> -       }
> -       /* unlock the folio after the ->read_folio() routine completes */
> -       folio_unlock(folio);
> -        return ret;
> +       folio_end_read(folio, ret == 0);
> +       return ret;
>  }
>
>  static int orangefs_write_begin(struct file *file,
> diff --git a/fs/orangefs/orangefs-bufmap.c b/fs/orangefs/orangefs-bufmap.c
> index b501dc07f922..edcca4beb765 100644
> --- a/fs/orangefs/orangefs-bufmap.c
> +++ b/fs/orangefs/orangefs-bufmap.c
> @@ -274,10 +274,8 @@ orangefs_bufmap_map(struct orangefs_bufmap *bufmap,
>                 gossip_err("orangefs error: asked for %d pages, only got %d.\n",
>                                 bufmap->page_count, ret);
>
> -               for (i = 0; i < ret; i++) {
> -                       SetPageError(bufmap->page_array[i]);
> +               for (i = 0; i < ret; i++)
>                         unpin_user_page(bufmap->page_array[i]);
> -               }
>                 return -ENOMEM;
>         }
>
> --
> 2.43.0
>
diff mbox series

Patch

diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c
index 085912268442..fdb9b65db1de 100644
--- a/fs/orangefs/inode.c
+++ b/fs/orangefs/inode.c
@@ -56,7 +56,6 @@  static int orangefs_writepage_locked(struct page *page,
 	ret = wait_for_direct_io(ORANGEFS_IO_WRITE, inode, &off, &iter, wlen,
 	    len, wr, NULL, NULL);
 	if (ret < 0) {
-		SetPageError(page);
 		mapping_set_error(page->mapping, ret);
 	} else {
 		ret = 0;
@@ -119,7 +118,6 @@  static int orangefs_writepages_work(struct orangefs_writepages *ow,
 	    0, &wr, NULL, NULL);
 	if (ret < 0) {
 		for (i = 0; i < ow->npages; i++) {
-			SetPageError(ow->pages[i]);
 			mapping_set_error(ow->pages[i]->mapping, ret);
 			if (PagePrivate(ow->pages[i])) {
 				wrp = (struct orangefs_write_range *)
@@ -303,15 +301,10 @@  static int orangefs_read_folio(struct file *file, struct folio *folio)
 	iov_iter_zero(~0U, &iter);
 	/* takes care of potential aliasing */
 	flush_dcache_folio(folio);
-	if (ret < 0) {
-		folio_set_error(folio);
-	} else {
-		folio_mark_uptodate(folio);
+	if (ret > 0)
 		ret = 0;
-	}
-	/* unlock the folio after the ->read_folio() routine completes */
-	folio_unlock(folio);
-        return ret;
+	folio_end_read(folio, ret == 0);
+	return ret;
 }
 
 static int orangefs_write_begin(struct file *file,
diff --git a/fs/orangefs/orangefs-bufmap.c b/fs/orangefs/orangefs-bufmap.c
index b501dc07f922..edcca4beb765 100644
--- a/fs/orangefs/orangefs-bufmap.c
+++ b/fs/orangefs/orangefs-bufmap.c
@@ -274,10 +274,8 @@  orangefs_bufmap_map(struct orangefs_bufmap *bufmap,
 		gossip_err("orangefs error: asked for %d pages, only got %d.\n",
 				bufmap->page_count, ret);
 
-		for (i = 0; i < ret; i++) {
-			SetPageError(bufmap->page_array[i]);
+		for (i = 0; i < ret; i++)
 			unpin_user_page(bufmap->page_array[i]);
-		}
 		return -ENOMEM;
 	}