diff for duplicates of <20100302113441.GD1921@linux> diff --git a/a/1.txt b/N1/1.txt index 8690cf1..8017185 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -7,85 +7,85 @@ On Tue, Mar 02, 2010 at 01:09:24PM +0200, Kirill A. Shutemov wrote: > >> > > >> > Signed-off-by: Andrea Righi <arighi@develer.com> > >> > --- -> >> > fs/fuse/file.c | 5 +++ -> >> > fs/nfs/write.c | 4 ++ -> >> > fs/nilfs2/segment.c | 10 +++++- -> >> > mm/filemap.c | 1 + -> >> > mm/page-writeback.c | 84 ++++++++++++++++++++++++++++++++------------------ -> >> > mm/rmap.c | 4 +- -> >> > mm/truncate.c | 2 + -> >> > 7 files changed, 76 insertions(+), 34 deletions(-) +> >> > fs/fuse/file.c | 5 +++ +> >> > fs/nfs/write.c | 4 ++ +> >> > fs/nilfs2/segment.c | 10 +++++- +> >> > mm/filemap.c | 1 + +> >> > mm/page-writeback.c | 84 ++++++++++++++++++++++++++++++++------------------ +> >> > mm/rmap.c | 4 +- +> >> > mm/truncate.c | 2 + +> >> > 7 files changed, 76 insertions(+), 34 deletions(-) > >> > > >> > diff --git a/fs/fuse/file.c b/fs/fuse/file.c > >> > index a9f5e13..dbbdd53 100644 > >> > --- a/fs/fuse/file.c > >> > +++ b/fs/fuse/file.c > >> > @@ -11,6 +11,7 @@ -> >> > #include <linux/pagemap.h> -> >> > #include <linux/slab.h> -> >> > #include <linux/kernel.h> +> >> > #include <linux/pagemap.h> +> >> > #include <linux/slab.h> +> >> > #include <linux/kernel.h> > >> > +#include <linux/memcontrol.h> -> >> > #include <linux/sched.h> -> >> > #include <linux/module.h> +> >> > #include <linux/sched.h> +> >> > #include <linux/module.h> > >> > > >> > @@ -1129,6 +1130,8 @@ static void fuse_writepage_finish(struct fuse_conn *fc, struct fuse_req *req) > >> > -> >> > list_del(&req->writepages_entry); -> >> > dec_bdi_stat(bdi, BDI_WRITEBACK); -> >> > + mem_cgroup_update_stat(req->pages[0], -> >> > + MEM_CGROUP_STAT_WRITEBACK_TEMP, -1); -> >> > dec_zone_page_state(req->pages[0], NR_WRITEBACK_TEMP); -> >> > bdi_writeout_inc(bdi); -> >> > wake_up(&fi->page_waitq); +> >> > list_del(&req->writepages_entry); +> >> > dec_bdi_stat(bdi, BDI_WRITEBACK); +> >> > + mem_cgroup_update_stat(req->pages[0], +> >> > + MEM_CGROUP_STAT_WRITEBACK_TEMP, -1); +> >> > dec_zone_page_state(req->pages[0], NR_WRITEBACK_TEMP); +> >> > bdi_writeout_inc(bdi); +> >> > wake_up(&fi->page_waitq); > >> > @@ -1240,6 +1243,8 @@ static int fuse_writepage_locked(struct page *page) -> >> > req->inode = inode; +> >> > req->inode = inode; > >> > -> >> > inc_bdi_stat(mapping->backing_dev_info, BDI_WRITEBACK); -> >> > + mem_cgroup_update_stat(tmp_page, -> >> > + MEM_CGROUP_STAT_WRITEBACK_TEMP, 1); -> >> > inc_zone_page_state(tmp_page, NR_WRITEBACK_TEMP); -> >> > end_page_writeback(page); +> >> > inc_bdi_stat(mapping->backing_dev_info, BDI_WRITEBACK); +> >> > + mem_cgroup_update_stat(tmp_page, +> >> > + MEM_CGROUP_STAT_WRITEBACK_TEMP, 1); +> >> > inc_zone_page_state(tmp_page, NR_WRITEBACK_TEMP); +> >> > end_page_writeback(page); > >> > > >> > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > >> > index b753242..7316f7a 100644 > >> > --- a/fs/nfs/write.c > >> > +++ b/fs/nfs/write.c > >> > @@ -439,6 +439,7 @@ nfs_mark_request_commit(struct nfs_page *req) -> >> > req->wb_index, -> >> > NFS_PAGE_TAG_COMMIT); -> >> > spin_unlock(&inode->i_lock); -> >> > + mem_cgroup_update_stat(req->wb_page, MEM_CGROUP_STAT_UNSTABLE_NFS, 1); -> >> > inc_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); -> >> > inc_bdi_stat(req->wb_page->mapping->backing_dev_info, BDI_UNSTABLE); -> >> > __mark_inode_dirty(inode, I_DIRTY_DATASYNC); +> >> > req->wb_index, +> >> > NFS_PAGE_TAG_COMMIT); +> >> > spin_unlock(&inode->i_lock); +> >> > + mem_cgroup_update_stat(req->wb_page, MEM_CGROUP_STAT_UNSTABLE_NFS, 1); +> >> > inc_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); +> >> > inc_bdi_stat(req->wb_page->mapping->backing_dev_info, BDI_UNSTABLE); +> >> > __mark_inode_dirty(inode, I_DIRTY_DATASYNC); > >> > @@ -450,6 +451,7 @@ nfs_clear_request_commit(struct nfs_page *req) -> >> > struct page *page = req->wb_page; +> >> > struct page *page = req->wb_page; > >> > -> >> > if (test_and_clear_bit(PG_CLEAN, &(req)->wb_flags)) { -> >> > + mem_cgroup_update_stat(page, MEM_CGROUP_STAT_UNSTABLE_NFS, -1); -> >> > dec_zone_page_state(page, NR_UNSTABLE_NFS); -> >> > dec_bdi_stat(page->mapping->backing_dev_info, BDI_UNSTABLE); -> >> > return 1; +> >> > if (test_and_clear_bit(PG_CLEAN, &(req)->wb_flags)) { +> >> > + mem_cgroup_update_stat(page, MEM_CGROUP_STAT_UNSTABLE_NFS, -1); +> >> > dec_zone_page_state(page, NR_UNSTABLE_NFS); +> >> > dec_bdi_stat(page->mapping->backing_dev_info, BDI_UNSTABLE); +> >> > return 1; > >> > @@ -1273,6 +1275,8 @@ nfs_commit_list(struct inode *inode, struct list_head *head, int how) -> >> > req = nfs_list_entry(head->next); -> >> > nfs_list_remove_request(req); -> >> > nfs_mark_request_commit(req); -> >> > + mem_cgroup_update_stat(req->wb_page, -> >> > + MEM_CGROUP_STAT_UNSTABLE_NFS, -1); -> >> > dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); -> >> > dec_bdi_stat(req->wb_page->mapping->backing_dev_info, -> >> > BDI_UNSTABLE); +> >> > req = nfs_list_entry(head->next); +> >> > nfs_list_remove_request(req); +> >> > nfs_mark_request_commit(req); +> >> > + mem_cgroup_update_stat(req->wb_page, +> >> > + MEM_CGROUP_STAT_UNSTABLE_NFS, -1); +> >> > dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); +> >> > dec_bdi_stat(req->wb_page->mapping->backing_dev_info, +> >> > BDI_UNSTABLE); > >> > diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c > >> > index ada2f1b..aef6d13 100644 > >> > --- a/fs/nilfs2/segment.c > >> > +++ b/fs/nilfs2/segment.c > >> > @@ -1660,8 +1660,11 @@ nilfs_copy_replace_page_buffers(struct page *page, struct list_head *out) -> >> > } while (bh = bh->b_this_page, bh2 = bh2->b_this_page, bh != head); -> >> > kunmap_atomic(kaddr, KM_USER0); +> >> > } while (bh = bh->b_this_page, bh2 = bh2->b_this_page, bh != head); +> >> > kunmap_atomic(kaddr, KM_USER0); > >> > -> >> > - if (!TestSetPageWriteback(clone_page)) -> >> > + if (!TestSetPageWriteback(clone_page)) { -> >> > + mem_cgroup_update_stat(clone_page, +> >> > - if (!TestSetPageWriteback(clone_page)) +> >> > + if (!TestSetPageWriteback(clone_page)) { +> >> > + mem_cgroup_update_stat(clone_page, > >> > >> s/clone_page/page/ > > @@ -98,3 +98,9 @@ Yes. Good catch! Will fix in the next version. Thanks, -Andrea + +-- +To unsubscribe, send a message with 'unsubscribe linux-mm' in +the body to majordomo@kvack.org. For more info on Linux MM, +see: http://www.linux-mm.org/ . +Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> diff --git a/a/content_digest b/N1/content_digest index accdbe2..b38a33a 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -27,85 +27,85 @@ "> >> >\n" "> >> > Signed-off-by: Andrea Righi <arighi@develer.com>\n" "> >> > ---\n" - "> >> > \302\240fs/fuse/file.c \302\240 \302\240 \302\240| \302\240 \302\2405 +++\n" - "> >> > \302\240fs/nfs/write.c \302\240 \302\240 \302\240| \302\240 \302\2404 ++\n" - "> >> > \302\240fs/nilfs2/segment.c | \302\240 10 +++++-\n" - "> >> > \302\240mm/filemap.c \302\240 \302\240 \302\240 \302\240| \302\240 \302\2401 +\n" - "> >> > \302\240mm/page-writeback.c | \302\240 84 ++++++++++++++++++++++++++++++++------------------\n" - "> >> > \302\240mm/rmap.c \302\240 \302\240 \302\240 \302\240 \302\240 | \302\240 \302\2404 +-\n" - "> >> > \302\240mm/truncate.c \302\240 \302\240 \302\240 | \302\240 \302\2402 +\n" - "> >> > \302\2407 files changed, 76 insertions(+), 34 deletions(-)\n" + "> >> > fs/fuse/file.c | 5 +++\n" + "> >> > fs/nfs/write.c | 4 ++\n" + "> >> > fs/nilfs2/segment.c | 10 +++++-\n" + "> >> > mm/filemap.c | 1 +\n" + "> >> > mm/page-writeback.c | 84 ++++++++++++++++++++++++++++++++------------------\n" + "> >> > mm/rmap.c | 4 +-\n" + "> >> > mm/truncate.c | 2 +\n" + "> >> > 7 files changed, 76 insertions(+), 34 deletions(-)\n" "> >> >\n" "> >> > diff --git a/fs/fuse/file.c b/fs/fuse/file.c\n" "> >> > index a9f5e13..dbbdd53 100644\n" "> >> > --- a/fs/fuse/file.c\n" "> >> > +++ b/fs/fuse/file.c\n" "> >> > @@ -11,6 +11,7 @@\n" - "> >> > \302\240#include <linux/pagemap.h>\n" - "> >> > \302\240#include <linux/slab.h>\n" - "> >> > \302\240#include <linux/kernel.h>\n" + "> >> > #include <linux/pagemap.h>\n" + "> >> > #include <linux/slab.h>\n" + "> >> > #include <linux/kernel.h>\n" "> >> > +#include <linux/memcontrol.h>\n" - "> >> > \302\240#include <linux/sched.h>\n" - "> >> > \302\240#include <linux/module.h>\n" + "> >> > #include <linux/sched.h>\n" + "> >> > #include <linux/module.h>\n" "> >> >\n" "> >> > @@ -1129,6 +1130,8 @@ static void fuse_writepage_finish(struct fuse_conn *fc, struct fuse_req *req)\n" "> >> >\n" - "> >> > \302\240 \302\240 \302\240 \302\240list_del(&req->writepages_entry);\n" - "> >> > \302\240 \302\240 \302\240 \302\240dec_bdi_stat(bdi, BDI_WRITEBACK);\n" - "> >> > + \302\240 \302\240 \302\240 mem_cgroup_update_stat(req->pages[0],\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 MEM_CGROUP_STAT_WRITEBACK_TEMP, -1);\n" - "> >> > \302\240 \302\240 \302\240 \302\240dec_zone_page_state(req->pages[0], NR_WRITEBACK_TEMP);\n" - "> >> > \302\240 \302\240 \302\240 \302\240bdi_writeout_inc(bdi);\n" - "> >> > \302\240 \302\240 \302\240 \302\240wake_up(&fi->page_waitq);\n" + "> >> > list_del(&req->writepages_entry);\n" + "> >> > dec_bdi_stat(bdi, BDI_WRITEBACK);\n" + "> >> > + mem_cgroup_update_stat(req->pages[0],\n" + "> >> > + MEM_CGROUP_STAT_WRITEBACK_TEMP, -1);\n" + "> >> > dec_zone_page_state(req->pages[0], NR_WRITEBACK_TEMP);\n" + "> >> > bdi_writeout_inc(bdi);\n" + "> >> > wake_up(&fi->page_waitq);\n" "> >> > @@ -1240,6 +1243,8 @@ static int fuse_writepage_locked(struct page *page)\n" - "> >> > \302\240 \302\240 \302\240 \302\240req->inode = inode;\n" + "> >> > req->inode = inode;\n" "> >> >\n" - "> >> > \302\240 \302\240 \302\240 \302\240inc_bdi_stat(mapping->backing_dev_info, BDI_WRITEBACK);\n" - "> >> > + \302\240 \302\240 \302\240 mem_cgroup_update_stat(tmp_page,\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 MEM_CGROUP_STAT_WRITEBACK_TEMP, 1);\n" - "> >> > \302\240 \302\240 \302\240 \302\240inc_zone_page_state(tmp_page, NR_WRITEBACK_TEMP);\n" - "> >> > \302\240 \302\240 \302\240 \302\240end_page_writeback(page);\n" + "> >> > inc_bdi_stat(mapping->backing_dev_info, BDI_WRITEBACK);\n" + "> >> > + mem_cgroup_update_stat(tmp_page,\n" + "> >> > + MEM_CGROUP_STAT_WRITEBACK_TEMP, 1);\n" + "> >> > inc_zone_page_state(tmp_page, NR_WRITEBACK_TEMP);\n" + "> >> > end_page_writeback(page);\n" "> >> >\n" "> >> > diff --git a/fs/nfs/write.c b/fs/nfs/write.c\n" "> >> > index b753242..7316f7a 100644\n" "> >> > --- a/fs/nfs/write.c\n" "> >> > +++ b/fs/nfs/write.c\n" "> >> > @@ -439,6 +439,7 @@ nfs_mark_request_commit(struct nfs_page *req)\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240req->wb_index,\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240NFS_PAGE_TAG_COMMIT);\n" - "> >> > \302\240 \302\240 \302\240 \302\240spin_unlock(&inode->i_lock);\n" - "> >> > + \302\240 \302\240 \302\240 mem_cgroup_update_stat(req->wb_page, MEM_CGROUP_STAT_UNSTABLE_NFS, 1);\n" - "> >> > \302\240 \302\240 \302\240 \302\240inc_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);\n" - "> >> > \302\240 \302\240 \302\240 \302\240inc_bdi_stat(req->wb_page->mapping->backing_dev_info, BDI_UNSTABLE);\n" - "> >> > \302\240 \302\240 \302\240 \302\240__mark_inode_dirty(inode, I_DIRTY_DATASYNC);\n" + "> >> > req->wb_index,\n" + "> >> > NFS_PAGE_TAG_COMMIT);\n" + "> >> > spin_unlock(&inode->i_lock);\n" + "> >> > + mem_cgroup_update_stat(req->wb_page, MEM_CGROUP_STAT_UNSTABLE_NFS, 1);\n" + "> >> > inc_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);\n" + "> >> > inc_bdi_stat(req->wb_page->mapping->backing_dev_info, BDI_UNSTABLE);\n" + "> >> > __mark_inode_dirty(inode, I_DIRTY_DATASYNC);\n" "> >> > @@ -450,6 +451,7 @@ nfs_clear_request_commit(struct nfs_page *req)\n" - "> >> > \302\240 \302\240 \302\240 \302\240struct page *page = req->wb_page;\n" + "> >> > struct page *page = req->wb_page;\n" "> >> >\n" - "> >> > \302\240 \302\240 \302\240 \302\240if (test_and_clear_bit(PG_CLEAN, &(req)->wb_flags)) {\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 mem_cgroup_update_stat(page, MEM_CGROUP_STAT_UNSTABLE_NFS, -1);\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240dec_zone_page_state(page, NR_UNSTABLE_NFS);\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240dec_bdi_stat(page->mapping->backing_dev_info, BDI_UNSTABLE);\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240return 1;\n" + "> >> > if (test_and_clear_bit(PG_CLEAN, &(req)->wb_flags)) {\n" + "> >> > + mem_cgroup_update_stat(page, MEM_CGROUP_STAT_UNSTABLE_NFS, -1);\n" + "> >> > dec_zone_page_state(page, NR_UNSTABLE_NFS);\n" + "> >> > dec_bdi_stat(page->mapping->backing_dev_info, BDI_UNSTABLE);\n" + "> >> > return 1;\n" "> >> > @@ -1273,6 +1275,8 @@ nfs_commit_list(struct inode *inode, struct list_head *head, int how)\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240req = nfs_list_entry(head->next);\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240nfs_list_remove_request(req);\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240nfs_mark_request_commit(req);\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 mem_cgroup_update_stat(req->wb_page,\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 MEM_CGROUP_STAT_UNSTABLE_NFS, -1);\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240dec_bdi_stat(req->wb_page->mapping->backing_dev_info,\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240BDI_UNSTABLE);\n" + "> >> > req = nfs_list_entry(head->next);\n" + "> >> > nfs_list_remove_request(req);\n" + "> >> > nfs_mark_request_commit(req);\n" + "> >> > + mem_cgroup_update_stat(req->wb_page,\n" + "> >> > + MEM_CGROUP_STAT_UNSTABLE_NFS, -1);\n" + "> >> > dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);\n" + "> >> > dec_bdi_stat(req->wb_page->mapping->backing_dev_info,\n" + "> >> > BDI_UNSTABLE);\n" "> >> > diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c\n" "> >> > index ada2f1b..aef6d13 100644\n" "> >> > --- a/fs/nilfs2/segment.c\n" "> >> > +++ b/fs/nilfs2/segment.c\n" "> >> > @@ -1660,8 +1660,11 @@ nilfs_copy_replace_page_buffers(struct page *page, struct list_head *out)\n" - "> >> > \302\240 \302\240 \302\240 \302\240} while (bh = bh->b_this_page, bh2 = bh2->b_this_page, bh != head);\n" - "> >> > \302\240 \302\240 \302\240 \302\240kunmap_atomic(kaddr, KM_USER0);\n" + "> >> > } while (bh = bh->b_this_page, bh2 = bh2->b_this_page, bh != head);\n" + "> >> > kunmap_atomic(kaddr, KM_USER0);\n" "> >> >\n" - "> >> > - \302\240 \302\240 \302\240 if (!TestSetPageWriteback(clone_page))\n" - "> >> > + \302\240 \302\240 \302\240 if (!TestSetPageWriteback(clone_page)) {\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 mem_cgroup_update_stat(clone_page,\n" + "> >> > - if (!TestSetPageWriteback(clone_page))\n" + "> >> > + if (!TestSetPageWriteback(clone_page)) {\n" + "> >> > + mem_cgroup_update_stat(clone_page,\n" "> >>\n" "> >> s/clone_page/page/\n" "> >\n" @@ -117,6 +117,12 @@ "Yes. Good catch! Will fix in the next version.\n" "\n" "Thanks,\n" - -Andrea + "-Andrea\n" + "\n" + "--\n" + "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n" + "the body to majordomo@kvack.org. For more info on Linux MM,\n" + "see: http://www.linux-mm.org/ .\n" + "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>" -0ab57e0b5ba835419191d926e45922d995297c32ab3a569c965c208eaf2811a7 +45a312f108c4355b8f72db75aa11cd134b9f18729139aca7f708491099d46ee3
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.