From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: linux-fsdevel@vger.kernel.org
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>,
Christoph Hellwig <hch@lst.de>
Subject: [PATCH 03/25] namei: Convert page_symlink() to use memalloc_nofs_save()
Date: Sun, 8 May 2022 21:29:19 +0100 [thread overview]
Message-ID: <20220508202941.667024-4-willy@infradead.org> (raw)
In-Reply-To: <20220508202941.667024-1-willy@infradead.org>
Stop using AOP_FLAG_NOFS in favour of the scoped memory API.
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
---
fs/namei.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/fs/namei.c b/fs/namei.c
index 6153581073b1..0c84b4326dc9 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -22,6 +22,7 @@
#include <linux/fs.h>
#include <linux/namei.h>
#include <linux/pagemap.h>
+#include <linux/sched/mm.h>
#include <linux/fsnotify.h>
#include <linux/personality.h>
#include <linux/security.h>
@@ -5008,13 +5009,15 @@ int page_symlink(struct inode *inode, const char *symname, int len)
struct page *page;
void *fsdata;
int err;
- unsigned int flags = 0;
- if (nofs)
- flags |= AOP_FLAG_NOFS;
+ unsigned int flags;
retry:
+ if (nofs)
+ flags = memalloc_nofs_save();
err = pagecache_write_begin(NULL, mapping, 0, len-1,
- flags, &page, &fsdata);
+ 0, &page, &fsdata);
+ if (nofs)
+ memalloc_nofs_restore(flags);
if (err)
goto fail;
--
2.34.1
next prev parent reply other threads:[~2022-05-08 20:30 UTC|newest]
Thread overview: 132+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-08 19:33 [GIT UPDATE] pagecache tree Matthew Wilcox
2022-05-08 20:28 ` [PATCH] Appoint myself page cache maintainer Matthew Wilcox (Oracle)
2022-05-08 23:16 ` Dave Chinner
2022-05-09 1:05 ` Darrick J. Wong
2022-05-09 10:28 ` Jeff Layton
2022-05-11 13:34 ` Christian Brauner
2022-05-12 13:48 ` Vlastimil Babka
2022-05-08 20:28 ` [PATCH] scsicam: Fix use of page cache Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 00/25] Remove AOP flags (and related cleanups) Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 01/25] ext4: Use page_symlink() instead of __page_symlink() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 02/25] namei: Merge page_symlink() and __page_symlink() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` Matthew Wilcox (Oracle) [this message]
2022-05-08 20:29 ` [PATCH 04/25] f2fs: Convert f2fs_grab_cache_page() to use scoped memory APIs Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 05/25] ext4: Allow GFP_FS allocations in ext4_da_convert_inline_data_to_extent() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 06/25] ext4: Use scoped memory API in mext_page_double_lock() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 07/25] ext4: Use scoped memory APIs in ext4_da_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 08/25] ext4: Use scoped memory APIs in ext4_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 09/25] fs: Remove AOP_FLAG_NOFS Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 10/25] fs: Remove aop_flags parameter from netfs_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 11/25] fs: Remove aop flags parameter from block_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 12/25] fs: Remove aop flags parameter from cont_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 13/25] fs: Remove aop flags parameter from grab_cache_page_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 14/25] fs: Remove aop flags parameter from nobh_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 15/25] fs: Remove flags parameter from aops->write_begin Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 16/25] buffer: Call aops write_begin() and write_end() directly Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 17/25] namei: " Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 18/25] ntfs3: Call ntfs_write_begin() and ntfs_write_end() directly Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 19/25] ntfs3: Remove fsdata parameter from ntfs_extend_initialized_size() Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 20/25] hfs: Call hfs_write_begin() and generic_write_end() directly Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 21/25] hfsplus: Call hfsplus_write_begin() " Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 22/25] ext4: Call aops write_begin() and write_end() directly Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 23/25] f2fs: " Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 24/25] i915: " Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 25/25] fs: Remove pagecache_write_begin() and pagecache_write_end() Matthew Wilcox (Oracle)
2022-05-08 20:30 ` [PATCH 0/3] Pagecache documentation updates Matthew Wilcox (Oracle)
2022-05-08 20:30 ` [PATCH 1/3] filemap: Remove obsolete comment in lock_page Matthew Wilcox (Oracle)
2022-05-09 3:21 ` Miaohe Lin
2022-05-08 20:30 ` [PATCH 2/3] filemap: Update the folio_lock documentation Matthew Wilcox (Oracle)
2022-05-08 20:30 ` [PATCH 3/3] filemap: Update the folio_mark_dirty documentation Matthew Wilcox (Oracle)
2022-05-08 20:30 ` [PATCH 00/37] Convert aops->read_page to aops->read_folio Matthew Wilcox (Oracle)
2022-05-08 20:30 ` [PATCH 01/37] fs: Introduce aops->read_folio Matthew Wilcox (Oracle)
2022-05-08 20:30 ` [PATCH 02/37] fs: Add read_folio documentation Matthew Wilcox (Oracle)
2022-05-08 20:30 ` [PATCH 03/37] fs: Convert netfs_readpage to netfs_read_folio Matthew Wilcox (Oracle)
2022-05-08 20:30 ` [PATCH 04/37] fs: Convert iomap_readpage to iomap_read_folio Matthew Wilcox (Oracle)
2022-05-08 20:30 ` [PATCH 05/37] fs: Convert block_read_full_page() to block_read_full_folio() Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 06/37] fs: Convert mpage_readpage to mpage_read_folio Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 07/37] fs: Convert simple_readpage to simple_read_folio Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 08/37] affs: Convert affs to read_folio Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 09/37] afs: Convert afs_symlink_readpage to afs_symlink_read_folio Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 10/37] befs: Convert befs to read_folio Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 11/37] btrfs: Convert btrfs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 12/37] cifs: Convert cifs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 13/37] coda: Convert coda " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 14/37] cramfs: Convert cramfs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 15/37] ecryptfs: Convert ecryptfs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 16/37] efs: Convert efs symlinks " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 17/37] erofs: Convert erofs zdata " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 18/37] ext4: Convert ext4 " Matthew Wilcox (Oracle)
2022-05-09 13:30 ` Theodore Ts'o
2022-05-09 14:07 ` Matthew Wilcox
2022-05-09 20:16 ` Theodore Ts'o
2022-05-09 21:07 ` Matthew Wilcox
2022-05-08 20:31 ` [PATCH 19/37] f2fs: Convert f2fs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 20/37] freevxfs: Convert vxfs_immed " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 21/37] fuse: Convert fuse " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 22/37] hostfs: Convert hostfs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 23/37] hpfs: Convert symlinks " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 24/37] isofs: Convert symlinks and zisofs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 25/37] jffs2: Convert jffs2 " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 26/37] jfs: Convert metadata pages " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 27/37] nfs: Convert nfs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 28/37] ntfs: Convert ntfs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 29/37] ocfs2: Convert ocfs2 " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 30/37] orangefs: Convert orangefs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 31/37] romfs: Convert romfs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 32/37] squashfs: Convert squashfs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 33/37] ubifs: Convert ubifs " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 34/37] udf: Convert adinicb and symlinks " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 35/37] vboxsf: Convert vboxsf " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 36/37] mm: Convert swap_readpage to call read_folio instead of readpage Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 37/37] mm,fs: Remove aops->readpage Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 0/4] Miscellaneous folio conversions Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 1/4] readahead: Use a folio in read_pages() Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 2/4] fs: Convert is_dirty_writeback() to take a folio Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 3/4] mm/readahead: Convert page_cache_async_readahead " Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 4/4] buffer: Rewrite nobh_truncate_page() to use folios Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 00/26] Convert aops->releasepage to aops->release_folio Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 01/26] fs: Add aops->release_folio Matthew Wilcox (Oracle)
2022-05-09 10:33 ` Jeff Layton
2022-05-09 12:23 ` Matthew Wilcox
2022-05-08 20:32 ` [PATCH 02/26] iomap: Convert to release_folio Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 03/26] 9p: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 04/26] afs: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 05/26] btrfs: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 06/26] ceph: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 07/26] cifs: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 08/26] erofs: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 09/26] ext4: " Matthew Wilcox (Oracle)
2022-05-09 13:14 ` Theodore Ts'o
2022-05-08 20:32 ` [PATCH 10/26] f2fs: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 11/26] gfs2: " Matthew Wilcox (Oracle)
2022-05-09 12:24 ` Bob Peterson
2022-05-08 20:32 ` [PATCH 12/26] hfs: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 13/26] hfsplus: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 14/26] jfs: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 15/26] nfs: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 16/26] nilfs2: Remove comment about releasepage Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 17/26] ocfs2: Convert to release_folio Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 18/26] orangefs: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 19/26] reiserfs: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 20/26] ubifs: " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 21/26] fs: Remove last vestiges of releasepage Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 22/26] reiserfs: Convert release_buffer_page() to use a folio Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 23/26] jbd2: Convert jbd2_journal_try_to_free_buffers to take " Matthew Wilcox (Oracle)
2022-05-09 13:17 ` Theodore Ts'o
2022-05-08 20:32 ` [PATCH 24/26] jbd2: Convert release_buffer_page() to use " Matthew Wilcox (Oracle)
2022-05-09 13:23 ` Theodore Ts'o
2022-05-09 13:48 ` Matthew Wilcox
2022-05-08 20:32 ` [PATCH 25/26] fs: Change try_to_free_buffers() to take " Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 26/26] fs: Convert drop_buffers() to use " Matthew Wilcox (Oracle)
2022-05-09 10:34 ` [PATCH 00/26] Convert aops->releasepage to aops->release_folio Jeff Layton
2022-05-08 20:32 ` [PATCH 0/4] Unify filler_t and aops->read_folio Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 1/4] jffs2: Pass the file pointer to jffs2_do_readpage_unlock() Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 2/4] nfs: Pass the file pointer to nfs_symlink_filler() Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 3/4] fs: Change the type of filler_t Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 4/4] mm/filemap: Hoist filler_t decision to the top of do_read_cache_folio() Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 0/5] Convert aops->freepage to aops->free_folio Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 1/5] fs: Add free_folio address space operation Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 2/5] orangefs: Convert to free_folio Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 3/5] nfs: " Matthew Wilcox (Oracle)
2022-05-08 20:33 ` [PATCH 4/5] secretmem: " Matthew Wilcox (Oracle)
2022-05-08 20:33 ` [PATCH 5/5] fs: Remove aops->freepage Matthew Wilcox (Oracle)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220508202941.667024-4-willy@infradead.org \
--to=willy@infradead.org \
--cc=hch@lst.de \
--cc=linux-fsdevel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).