]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
befs: Convert befs_symlink_read_folio() to use folio_end_read()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Thu, 30 May 2024 20:20:53 +0000 (21:20 +0100)
committerChristian Brauner <brauner@kernel.org>
Fri, 31 May 2024 10:31:39 +0000 (12:31 +0200)
This is slightly more efficient than separate calls to
folio_mark_uptodate() and folio_unlock(), and it's easier to read.
Get rid of the call to folio_set_error() as nobody will check this flag.

Cc: Luis de Bethencourt <luisbg@kernel.org>
Cc: Salah Triki <salah.triki@gmail.com>
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Link: https://lore.kernel.org/r/20240530202110.2653630-2-willy@infradead.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/befs/linuxvfs.c

index d76f406d3b2ede44eb5cc68bc92ecee3207a40f8..f92f108840f5066891ab1f299186d20ab74ef47f 100644 (file)
@@ -475,6 +475,7 @@ static int befs_symlink_read_folio(struct file *unused, struct folio *folio)
        befs_data_stream *data = &befs_ino->i_data.ds;
        befs_off_t len = data->size;
        char *link = folio_address(folio);
+       int err = -EIO;
 
        if (len == 0 || len > PAGE_SIZE) {
                befs_error(sb, "Long symlink with illegal length");
@@ -487,13 +488,10 @@ static int befs_symlink_read_folio(struct file *unused, struct folio *folio)
                goto fail;
        }
        link[len - 1] = '\0';
-       folio_mark_uptodate(folio);
-       folio_unlock(folio);
-       return 0;
+       err = 0;
 fail:
-       folio_set_error(folio);
-       folio_unlock(folio);
-       return -EIO;
+       folio_end_read(folio, err == 0);
+       return err;
 }
 
 /*