From: jglisse@redhat.com To: linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org Cc: linux-kernel@vger.kernel.org, "Jérôme Glisse" <jglisse@redhat.com>, "Andrew Morton" <akpm@linux-foundation.org>, "Alexander Viro" <viro@zeniv.linux.org.uk>, "Tejun Heo" <tj@kernel.org>, "Jan Kara" <jack@suse.cz>, "Josef Bacik" <jbacik@fb.com>, "Mel Gorman" <mgorman@techsingularity.net> Subject: [RFC PATCH 73/79] mm: pass down struct address_space to set_page_dirty() Date: Wed, 4 Apr 2018 15:18:25 -0400 [thread overview] Message-ID: <20180404191831.5378-36-jglisse@redhat.com> (raw) In-Reply-To: <20180404191831.5378-1-jglisse@redhat.com> From: Jérôme Glisse <jglisse@redhat.com> Pass down struct address_space to set_page_dirty() everywhere it is already available. <--------------------------------------------------------------------- @exists@ expression E; identifier F, M; @@ F(..., struct address_space * M, ...) { ... -set_page_dirty(NULL, E) +set_page_dirty(M, E) ... } @exists@ expression E; identifier M; @@ struct address_space * M; ... -set_page_dirty(NULL, E) +set_page_dirty(M, E) @exists@ expression E; identifier F, I; @@ F(..., struct inode * I, ...) { ... -set_page_dirty(NULL, E) +set_page_dirty(I->i_mapping, E) ... } @exists@ expression E; identifier I; @@ struct inode * I; ... -set_page_dirty(NULL, E) +set_page_dirty(I->i_mapping, E) ---------------------------------------------------------------------> Signed-off-by: Jérôme Glisse <jglisse@redhat.com> CC: Andrew Morton <akpm@linux-foundation.org> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: linux-fsdevel@vger.kernel.org Cc: Tejun Heo <tj@kernel.org> Cc: Jan Kara <jack@suse.cz> Cc: Josef Bacik <jbacik@fb.com> Cc: Mel Gorman <mgorman@techsingularity.net> --- mm/filemap.c | 2 +- mm/khugepaged.c | 2 +- mm/memory.c | 2 +- mm/page-writeback.c | 4 ++-- mm/page_io.c | 4 ++-- mm/shmem.c | 18 +++++++++--------- mm/truncate.c | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index c1ee7431bc4d..a15c29350a6a 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2717,7 +2717,7 @@ int filemap_page_mkwrite(struct vm_fault *vmf) * progress, we are guaranteed that writeback during freezing will * see the dirty page and writeprotect it again. */ - set_page_dirty(NULL, page); + set_page_dirty(inode->i_mapping, page); wait_for_stable_page(page); out: sb_end_pagefault(inode->i_sb); diff --git a/mm/khugepaged.c b/mm/khugepaged.c index ccd5da4e855f..b9a968172fb9 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -1513,7 +1513,7 @@ static void collapse_shmem(struct mm_struct *mm, retract_page_tables(mapping, start); /* Everything is ready, let's unfreeze the new_page */ - set_page_dirty(NULL, new_page); + set_page_dirty(mapping, new_page); SetPageUptodate(new_page); page_ref_unfreeze(new_page, HPAGE_PMD_NR); mem_cgroup_commit_charge(new_page, memcg, false, true); diff --git a/mm/memory.c b/mm/memory.c index 20443ebf9c42..fbd80bb7a50a 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -2400,7 +2400,7 @@ static void fault_dirty_shared_page(struct vm_area_struct *vma, bool dirtied; bool page_mkwrite = vma->vm_ops && vma->vm_ops->page_mkwrite; - dirtied = set_page_dirty(NULL, page); + dirtied = set_page_dirty(mapping, page); VM_BUG_ON_PAGE(PageAnon(page), page); /* * Take a local copy of the address_space - page.mapping may be zeroed diff --git a/mm/page-writeback.c b/mm/page-writeback.c index eaa6c23ba752..59dc9a12efc7 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2599,7 +2599,7 @@ int set_page_dirty_lock(struct address_space *_mapping, struct page *page) int ret; lock_page(page); - ret = set_page_dirty(NULL, page); + ret = set_page_dirty(_mapping, page); unlock_page(page); return ret; } @@ -2693,7 +2693,7 @@ int clear_page_dirty_for_io(struct page *page) * threads doing their things. */ if (page_mkclean(page)) - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); /* * We carefully synchronise fault handlers against * installing a dirty pte and marking the page dirty diff --git a/mm/page_io.c b/mm/page_io.c index 5afc8b8a6b97..fd3133cd50d4 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -329,7 +329,7 @@ int __swap_writepage(struct address_space *mapping, struct page *page, * the normal direct-to-bio case as it could * be temporary. */ - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); ClearPageReclaim(page); pr_err_ratelimited("Write error on dio swapfile (%llu)\n", page_file_offset(page)); @@ -348,7 +348,7 @@ int __swap_writepage(struct address_space *mapping, struct page *page, ret = 0; bio = get_swap_bio(GFP_NOIO, page, end_write_func); if (bio == NULL) { - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); unlock_page(page); ret = -ENOMEM; goto out; diff --git a/mm/shmem.c b/mm/shmem.c index cb09fea4a9ce..eae03f684869 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -874,7 +874,7 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, loff_t lend, partial_end = 0; } zero_user_segment(page, partial_start, top); - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); unlock_page(page); put_page(page); } @@ -884,7 +884,7 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, loff_t lend, shmem_getpage(inode, end, &page, SGP_READ); if (page) { zero_user_segment(page, 0, partial_end); - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); unlock_page(page); put_page(page); } @@ -1189,7 +1189,7 @@ static int shmem_unuse_inode(struct shmem_inode_info *info, * only does trylock page: if we raced, best clean up here. */ delete_from_swap_cache(*pagep); - set_page_dirty(NULL, *pagep); + set_page_dirty(mapping, *pagep); if (!error) { spin_lock_irq(&info->lock); info->swapped--; @@ -1364,7 +1364,7 @@ static int shmem_writepage(struct address_space *_mapping, struct page *page, free_swap: put_swap_page(page, swap); redirty: - set_page_dirty(NULL, page); + set_page_dirty(_mapping, page); if (wbc->for_reclaim) return AOP_WRITEPAGE_ACTIVATE; /* Return with page locked */ unlock_page(page); @@ -1738,7 +1738,7 @@ static int shmem_getpage_gfp(struct inode *inode, pgoff_t index, mark_page_accessed(page); delete_from_swap_cache(page); - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); swap_free(swap); } else { @@ -2416,7 +2416,7 @@ shmem_write_end(struct file *file, struct address_space *mapping, } SetPageUptodate(head); } - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); unlock_page(page); put_page(page); @@ -2469,7 +2469,7 @@ static ssize_t shmem_file_read_iter(struct kiocb *iocb, struct iov_iter *to) } if (page) { if (sgp == SGP_CACHE) - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); unlock_page(page); } @@ -2970,7 +2970,7 @@ static long shmem_fallocate(struct file *file, int mode, loff_t offset, * than free the pages we are allocating (and SGP_CACHE pages * might still be clean: we now need to mark those dirty too). */ - set_page_dirty(NULL, page); + set_page_dirty(inode->i_mapping, page); unlock_page(page); put_page(page); cond_resched(); @@ -3271,7 +3271,7 @@ static int shmem_symlink(struct inode *dir, struct dentry *dentry, const char *s inode->i_op = &shmem_symlink_inode_operations; memcpy(page_address(page), symname, len); SetPageUptodate(page); - set_page_dirty(NULL, page); + set_page_dirty(dir->i_mapping, page); unlock_page(page); put_page(page); } diff --git a/mm/truncate.c b/mm/truncate.c index 78d907008367..f4f018f35552 100644 --- a/mm/truncate.c +++ b/mm/truncate.c @@ -874,7 +874,7 @@ void pagecache_isize_extended(struct inode *inode, loff_t from, loff_t to) * is needed. */ if (page_mkclean(page)) - set_page_dirty(NULL, page); + set_page_dirty(inode->i_mapping, page); unlock_page(page); put_page(page); } -- 2.14.3
WARNING: multiple messages have this Message-ID (diff)
From: jglisse@redhat.com To: linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org Cc: linux-kernel@vger.kernel.org, "Jérôme Glisse" <jglisse@redhat.com>, "Andrew Morton" <akpm@linux-foundation.org>, "Alexander Viro" <viro@zeniv.linux.org.uk>, "Tejun Heo" <tj@kernel.org>, "Jan Kara" <jack@suse.cz>, "Josef Bacik" <jbacik@fb.com>, "Mel Gorman" <mgorman@techsingularity.net> Subject: [RFC PATCH 73/79] mm: pass down struct address_space to set_page_dirty() Date: Wed, 4 Apr 2018 15:18:25 -0400 [thread overview] Message-ID: <20180404191831.5378-36-jglisse@redhat.com> (raw) In-Reply-To: <20180404191831.5378-1-jglisse@redhat.com> From: JA(C)rA'me Glisse <jglisse@redhat.com> Pass down struct address_space to set_page_dirty() everywhere it is already available. <--------------------------------------------------------------------- @exists@ expression E; identifier F, M; @@ F(..., struct address_space * M, ...) { ... -set_page_dirty(NULL, E) +set_page_dirty(M, E) ... } @exists@ expression E; identifier M; @@ struct address_space * M; ... -set_page_dirty(NULL, E) +set_page_dirty(M, E) @exists@ expression E; identifier F, I; @@ F(..., struct inode * I, ...) { ... -set_page_dirty(NULL, E) +set_page_dirty(I->i_mapping, E) ... } @exists@ expression E; identifier I; @@ struct inode * I; ... -set_page_dirty(NULL, E) +set_page_dirty(I->i_mapping, E) ---------------------------------------------------------------------> Signed-off-by: JA(C)rA'me Glisse <jglisse@redhat.com> CC: Andrew Morton <akpm@linux-foundation.org> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: linux-fsdevel@vger.kernel.org Cc: Tejun Heo <tj@kernel.org> Cc: Jan Kara <jack@suse.cz> Cc: Josef Bacik <jbacik@fb.com> Cc: Mel Gorman <mgorman@techsingularity.net> --- mm/filemap.c | 2 +- mm/khugepaged.c | 2 +- mm/memory.c | 2 +- mm/page-writeback.c | 4 ++-- mm/page_io.c | 4 ++-- mm/shmem.c | 18 +++++++++--------- mm/truncate.c | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index c1ee7431bc4d..a15c29350a6a 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2717,7 +2717,7 @@ int filemap_page_mkwrite(struct vm_fault *vmf) * progress, we are guaranteed that writeback during freezing will * see the dirty page and writeprotect it again. */ - set_page_dirty(NULL, page); + set_page_dirty(inode->i_mapping, page); wait_for_stable_page(page); out: sb_end_pagefault(inode->i_sb); diff --git a/mm/khugepaged.c b/mm/khugepaged.c index ccd5da4e855f..b9a968172fb9 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -1513,7 +1513,7 @@ static void collapse_shmem(struct mm_struct *mm, retract_page_tables(mapping, start); /* Everything is ready, let's unfreeze the new_page */ - set_page_dirty(NULL, new_page); + set_page_dirty(mapping, new_page); SetPageUptodate(new_page); page_ref_unfreeze(new_page, HPAGE_PMD_NR); mem_cgroup_commit_charge(new_page, memcg, false, true); diff --git a/mm/memory.c b/mm/memory.c index 20443ebf9c42..fbd80bb7a50a 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -2400,7 +2400,7 @@ static void fault_dirty_shared_page(struct vm_area_struct *vma, bool dirtied; bool page_mkwrite = vma->vm_ops && vma->vm_ops->page_mkwrite; - dirtied = set_page_dirty(NULL, page); + dirtied = set_page_dirty(mapping, page); VM_BUG_ON_PAGE(PageAnon(page), page); /* * Take a local copy of the address_space - page.mapping may be zeroed diff --git a/mm/page-writeback.c b/mm/page-writeback.c index eaa6c23ba752..59dc9a12efc7 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2599,7 +2599,7 @@ int set_page_dirty_lock(struct address_space *_mapping, struct page *page) int ret; lock_page(page); - ret = set_page_dirty(NULL, page); + ret = set_page_dirty(_mapping, page); unlock_page(page); return ret; } @@ -2693,7 +2693,7 @@ int clear_page_dirty_for_io(struct page *page) * threads doing their things. */ if (page_mkclean(page)) - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); /* * We carefully synchronise fault handlers against * installing a dirty pte and marking the page dirty diff --git a/mm/page_io.c b/mm/page_io.c index 5afc8b8a6b97..fd3133cd50d4 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -329,7 +329,7 @@ int __swap_writepage(struct address_space *mapping, struct page *page, * the normal direct-to-bio case as it could * be temporary. */ - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); ClearPageReclaim(page); pr_err_ratelimited("Write error on dio swapfile (%llu)\n", page_file_offset(page)); @@ -348,7 +348,7 @@ int __swap_writepage(struct address_space *mapping, struct page *page, ret = 0; bio = get_swap_bio(GFP_NOIO, page, end_write_func); if (bio == NULL) { - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); unlock_page(page); ret = -ENOMEM; goto out; diff --git a/mm/shmem.c b/mm/shmem.c index cb09fea4a9ce..eae03f684869 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -874,7 +874,7 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, loff_t lend, partial_end = 0; } zero_user_segment(page, partial_start, top); - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); unlock_page(page); put_page(page); } @@ -884,7 +884,7 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, loff_t lend, shmem_getpage(inode, end, &page, SGP_READ); if (page) { zero_user_segment(page, 0, partial_end); - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); unlock_page(page); put_page(page); } @@ -1189,7 +1189,7 @@ static int shmem_unuse_inode(struct shmem_inode_info *info, * only does trylock page: if we raced, best clean up here. */ delete_from_swap_cache(*pagep); - set_page_dirty(NULL, *pagep); + set_page_dirty(mapping, *pagep); if (!error) { spin_lock_irq(&info->lock); info->swapped--; @@ -1364,7 +1364,7 @@ static int shmem_writepage(struct address_space *_mapping, struct page *page, free_swap: put_swap_page(page, swap); redirty: - set_page_dirty(NULL, page); + set_page_dirty(_mapping, page); if (wbc->for_reclaim) return AOP_WRITEPAGE_ACTIVATE; /* Return with page locked */ unlock_page(page); @@ -1738,7 +1738,7 @@ static int shmem_getpage_gfp(struct inode *inode, pgoff_t index, mark_page_accessed(page); delete_from_swap_cache(page); - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); swap_free(swap); } else { @@ -2416,7 +2416,7 @@ shmem_write_end(struct file *file, struct address_space *mapping, } SetPageUptodate(head); } - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); unlock_page(page); put_page(page); @@ -2469,7 +2469,7 @@ static ssize_t shmem_file_read_iter(struct kiocb *iocb, struct iov_iter *to) } if (page) { if (sgp == SGP_CACHE) - set_page_dirty(NULL, page); + set_page_dirty(mapping, page); unlock_page(page); } @@ -2970,7 +2970,7 @@ static long shmem_fallocate(struct file *file, int mode, loff_t offset, * than free the pages we are allocating (and SGP_CACHE pages * might still be clean: we now need to mark those dirty too). */ - set_page_dirty(NULL, page); + set_page_dirty(inode->i_mapping, page); unlock_page(page); put_page(page); cond_resched(); @@ -3271,7 +3271,7 @@ static int shmem_symlink(struct inode *dir, struct dentry *dentry, const char *s inode->i_op = &shmem_symlink_inode_operations; memcpy(page_address(page), symname, len); SetPageUptodate(page); - set_page_dirty(NULL, page); + set_page_dirty(dir->i_mapping, page); unlock_page(page); put_page(page); } diff --git a/mm/truncate.c b/mm/truncate.c index 78d907008367..f4f018f35552 100644 --- a/mm/truncate.c +++ b/mm/truncate.c @@ -874,7 +874,7 @@ void pagecache_isize_extended(struct inode *inode, loff_t from, loff_t to) * is needed. */ if (page_mkclean(page)) - set_page_dirty(NULL, page); + set_page_dirty(inode->i_mapping, page); unlock_page(page); put_page(page); } -- 2.14.3
next prev parent reply other threads:[~2018-04-04 19:18 UTC|newest] Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-04-04 19:17 [RFC PATCH 00/79] Generic page write protection and a solution to page waitqueue jglisse 2018-04-04 19:17 ` jglisse 2018-04-04 19:17 ` [RFC PATCH 04/79] pipe: add inode field to struct pipe_inode_info jglisse 2018-04-04 19:17 ` jglisse 2018-04-04 19:17 ` [RFC PATCH 05/79] mm/swap: add an helper to get address_space from swap_entry_t jglisse 2018-04-04 19:17 ` jglisse 2018-04-04 19:17 ` [RFC PATCH 06/79] mm/page: add helpers to dereference struct page index field jglisse 2018-04-04 19:17 ` jglisse 2018-04-04 19:17 ` [RFC PATCH 07/79] mm/page: add helpers to find mapping give a page and buffer head jglisse 2018-04-04 19:17 ` jglisse 2018-04-04 19:17 ` [RFC PATCH 08/79] mm/page: add helpers to find page mapping and private given a bio jglisse 2018-04-04 19:17 ` jglisse 2018-04-04 19:17 ` [RFC PATCH 09/79] fs: add struct address_space to read_cache_page() callback argument jglisse 2018-04-04 19:17 ` jglisse 2018-04-04 19:17 ` [RFC PATCH 20/79] fs: add struct address_space to write_cache_pages() " jglisse 2018-04-04 19:17 ` jglisse 2018-04-04 19:17 ` [RFC PATCH 22/79] fs: add struct inode to block_read_full_page() arguments jglisse 2018-04-04 19:17 ` jglisse 2018-04-04 19:17 ` [RFC PATCH 24/79] fs: add struct inode to nobh_writepage() arguments jglisse 2018-04-04 19:17 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 26/79] fs: add struct address_space to mpage_readpage() arguments jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 27/79] fs: add struct address_space to fscache_read*() callback arguments jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 28/79] fs: introduce page_is_truncated() helper jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 29/79] fs/block: add struct address_space to bdev_write_page() arguments jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 30/79] fs/block: add struct address_space to __block_write_begin() arguments jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 31/79] fs/block: add struct address_space to __block_write_begin_int() args jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 32/79] fs/block: do not rely on page->mapping get it from the context jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 33/79] fs/journal: add struct super_block to jbd2_journal_forget() arguments jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 34/79] fs/journal: add struct inode to jbd2_journal_revoke() arguments jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 35/79] fs/buffer: add struct address_space and struct page to end_io callback jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 36/79] fs/buffer: add struct super_block to bforget() arguments jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 37/79] fs/buffer: add struct super_block to __bforget() arguments jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 38/79] fs/buffer: add first buffer flag for first buffer_head in a page jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 39/79] fs/buffer: add struct address_space to clean_page_buffers() arguments jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 50/79] fs: stop relying on mapping field of struct page, get it from context jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 51/79] " jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 52/79] fs/buffer: use _page_has_buffers() instead of page_has_buffers() jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 63/79] mm/page: convert page's index lookup to be against specific mapping jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 64/79] mm/buffer: use _page_has_buffers() instead of page_has_buffers() jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 65/79] mm/swap: add struct swap_info_struct swap_readpage() arguments jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 68/79] mm/vma_address: convert page's index lookup to be against specific mapping jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 69/79] fs/journal: add struct address_space to jbd2_journal_try_to_free_buffers() arguments jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 70/79] mm: add struct address_space to mark_buffer_dirty() jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 71/79] mm: add struct address_space to set_page_dirty() jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 72/79] mm: add struct address_space to set_page_dirty_lock() jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` jglisse [this message] 2018-04-04 19:18 ` [RFC PATCH 73/79] mm: pass down struct address_space to set_page_dirty() jglisse 2018-04-04 19:18 ` [RFC PATCH 74/79] mm/page_ronly: add config option for generic read only page framework jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 75/79] mm/page_ronly: add page read only core structure and helpers jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 76/79] mm/ksm: have ksm select PAGE_RONLY config jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 77/79] mm/ksm: hide set_page_stable_node() and page_stable_node() jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 78/79] mm/ksm: rename PAGE_MAPPING_KSM to PAGE_MAPPING_RONLY jglisse 2018-04-04 19:18 ` jglisse 2018-04-04 19:18 ` [RFC PATCH 79/79] mm/ksm: set page->mapping to page_ronly struct instead of stable_node jglisse 2018-04-04 19:18 ` jglisse 2018-04-18 14:13 ` [RFC PATCH 00/79] Generic page write protection and a solution to page waitqueue Jan Kara 2018-04-18 14:13 ` Jan Kara 2018-04-18 14:13 ` Jan Kara 2018-04-18 15:54 ` Jerome Glisse 2018-04-18 15:54 ` Jerome Glisse 2018-04-18 15:54 ` Jerome Glisse 2018-04-18 16:20 ` Darrick J. Wong 2018-04-18 16:20 ` Darrick J. Wong 2018-04-18 16:20 ` Darrick J. Wong 2018-04-19 10:32 ` Jan Kara 2018-04-19 14:52 ` Jerome Glisse 2018-04-19 14:52 ` Jerome Glisse 2018-04-19 14:52 ` Jerome Glisse 2018-04-20 19:57 ` Tim Chen 2018-04-20 19:57 ` Tim Chen 2018-04-20 22:19 ` Jerome Glisse 2018-04-20 22:19 ` Jerome Glisse 2018-04-20 22:19 ` Jerome Glisse 2018-04-20 23:48 ` Tim Chen 2018-04-20 23:48 ` Tim Chen
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=20180404191831.5378-36-jglisse@redhat.com \ --to=jglisse@redhat.com \ --cc=akpm@linux-foundation.org \ --cc=jack@suse.cz \ --cc=jbacik@fb.com \ --cc=linux-block@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mgorman@techsingularity.net \ --cc=tj@kernel.org \ --cc=viro@zeniv.linux.org.uk \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.