diff for duplicates of <20120417124056.GI2359@suse.de> diff --git a/a/1.txt b/N1/1.txt index c77b603..efbcd15 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -4,26 +4,26 @@ > >> > -static struct nfs_page *nfs_page_find_request_locked(struct page *page) > >> > +static struct nfs_page * > >> > +nfs_page_find_request_locked(struct nfs_inode *nfsi, struct page *page) -> >> > { -> >> > struct nfs_page *req = NULL; +> >> > { +> >> > struct nfs_page *req = NULL; > >> > -> >> > - if (PagePrivate(page)) { -> >> > + if (PagePrivate(page)) -> >> > req = (struct nfs_page *)page_private(page); -> >> > - if (req != NULL) -> >> > - kref_get(&req->wb_kref); -> >> > + else if (unlikely(PageSwapCache(page))) { -> >> > + struct nfs_page *freq, *t; +> >> > - if (PagePrivate(page)) { +> >> > + if (PagePrivate(page)) +> >> > req = (struct nfs_page *)page_private(page); +> >> > - if (req != NULL) +> >> > - kref_get(&req->wb_kref); +> >> > + else if (unlikely(PageSwapCache(page))) { +> >> > + struct nfs_page *freq, *t; > >> > + -> >> > + /* Linearly search the commit list for the correct req */ -> >> > + list_for_each_entry_safe(freq, t, &nfsi->commit_list, wb_list) { -> >> > + if (freq->wb_page == page) { -> >> > + req = freq; -> >> > + break; -> >> > + } -> >> > + } +> >> > + /* Linearly search the commit list for the correct req */ +> >> > + list_for_each_entry_safe(freq, t, &nfsi->commit_list, wb_list) { +> >> > + if (freq->wb_page == page) { +> >> > + req = freq; +> >> > + break; +> >> > + } +> >> > + } > >> > + -> >> > + BUG_ON(req == NULL); +> >> > + BUG_ON(req == NULL); > >> > >> I suspect I am missing something, but why is it guaranteed that the > >> req is on the commit list? @@ -38,7 +38,7 @@ > > > > A req is on the commit list only if it actually needs to be scheduled -> for COMMIT. In other words, only after it has been sent via WRITE and +> for COMMIT. In other words, only after it has been sent via WRITE and > the server did not return NFS_FILE_SYNC. > > Thus dirtying a page, then trying to touch it again before the WRITE @@ -49,3 +49,10 @@ Thanks for the explanation. I'll remove the BUG_ON -- Mel Gorman SUSE Labs + +-- +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/ . +Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ +Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> diff --git a/a/content_digest b/N1/content_digest index d111083..1decdd6 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -25,26 +25,26 @@ "> >> > -static struct nfs_page *nfs_page_find_request_locked(struct page *page)\n" "> >> > +static struct nfs_page *\n" "> >> > +nfs_page_find_request_locked(struct nfs_inode *nfsi, struct page *page)\n" - "> >> > \302\240{\n" - "> >> > \302\240 \302\240 \302\240 \302\240struct nfs_page *req = NULL;\n" + "> >> > {\n" + "> >> > struct nfs_page *req = NULL;\n" "> >> >\n" - "> >> > - \302\240 \302\240 \302\240 if (PagePrivate(page)) {\n" - "> >> > + \302\240 \302\240 \302\240 if (PagePrivate(page))\n" - "> >> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240req = (struct nfs_page *)page_private(page);\n" - "> >> > - \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 if (req != NULL)\n" - "> >> > - \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 kref_get(&req->wb_kref);\n" - "> >> > + \302\240 \302\240 \302\240 else if (unlikely(PageSwapCache(page))) {\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 struct nfs_page *freq, *t;\n" + "> >> > - if (PagePrivate(page)) {\n" + "> >> > + if (PagePrivate(page))\n" + "> >> > req = (struct nfs_page *)page_private(page);\n" + "> >> > - if (req != NULL)\n" + "> >> > - kref_get(&req->wb_kref);\n" + "> >> > + else if (unlikely(PageSwapCache(page))) {\n" + "> >> > + struct nfs_page *freq, *t;\n" "> >> > +\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 /* Linearly search the commit list for the correct req */\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 list_for_each_entry_safe(freq, t, &nfsi->commit_list, wb_list) {\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 if (freq->wb_page == 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 req = freq;\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 break;\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 }\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 }\n" + "> >> > + /* Linearly search the commit list for the correct req */\n" + "> >> > + list_for_each_entry_safe(freq, t, &nfsi->commit_list, wb_list) {\n" + "> >> > + if (freq->wb_page == page) {\n" + "> >> > + req = freq;\n" + "> >> > + break;\n" + "> >> > + }\n" + "> >> > + }\n" "> >> > +\n" - "> >> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 BUG_ON(req == NULL);\n" + "> >> > + BUG_ON(req == NULL);\n" "> >>\n" "> >> I suspect I am missing something, but why is it guaranteed that the\n" "> >> req is on the commit list?\n" @@ -59,7 +59,7 @@ "> >\n" "> \n" "> A req is on the commit list only if it actually needs to be scheduled\n" - "> for COMMIT.\302\240In other words, only after it has been sent via WRITE and\n" + "> for COMMIT. In other words, only after it has been sent via WRITE and\n" "> the server did not return NFS_FILE_SYNC.\n" "> \n" "> Thus dirtying a page, then trying to touch it again before the WRITE\n" @@ -69,6 +69,13 @@ "\n" "-- \n" "Mel Gorman\n" - SUSE Labs + "SUSE Labs\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" + "Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/\n" + "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>" -dc726d4740e6793b8b862b7b45872a4d6d03452431925a0895beaa4614d4a8bf +6906a66a811df45e06f15b210a640e8ab8567696a947ed08108c0ec0fad273d3
diff --git a/a/1.txt b/N2/1.txt index c77b603..221a6b5 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -1,4 +1,4 @@ -> On Mon, Apr 16, 2012 at 9:44 AM, Mel Gorman <mgorman@suse.de> wrote: +> On Mon, Apr 16, 2012 at 9:44 AM, Mel Gorman <mgorman-l3A5Bk7waGM@public.gmane.org> wrote: > > On Mon, Apr 16, 2012 at 09:10:04AM -0400, Fred Isaman wrote: > >> > <SNIP> > >> > -static struct nfs_page *nfs_page_find_request_locked(struct page *page) @@ -49,3 +49,7 @@ Thanks for the explanation. I'll remove the BUG_ON -- Mel Gorman SUSE Labs +-- +To unsubscribe from this list: send the line "unsubscribe linux-nfs" in +the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org +More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/a/content_digest b/N2/content_digest index d111083..4798f9c 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,25 +1,26 @@ "ref\01334578675-23445-1-git-send-email-mgorman@suse.de\0" "ref\01334578675-23445-9-git-send-email-mgorman@suse.de\0" "ref\0CADnza444dTr=JEtqpL5wxHRNkEc7vBz1qq9TL7Z+5h749vNawg@mail.gmail.com\0" - "From\0Mel Gorman <mgorman@suse.de>\0" + "ref\0CADnza444dTr=JEtqpL5wxHRNkEc7vBz1qq9TL7Z+5h749vNawg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org\0" + "From\0Mel Gorman <mgorman-l3A5Bk7waGM@public.gmane.org>\0" "Subject\0Re: [PATCH 08/11] nfs: disable data cache revalidation for swapfiles\0" "Date\0Tue, 17 Apr 2012 13:40:56 +0100\0" - "To\0Fred Isaman <iisaman@netapp.com>\0" - "Cc\0Andrew Morton <akpm@linux-foundation.org>" - Linux-MM <linux-mm@kvack.org> - Linux-Netdev <netdev@vger.kernel.org> - Linux-NFS <linux-nfs@vger.kernel.org> - LKML <linux-kernel@vger.kernel.org> - David Miller <davem@davemloft.net> - Trond Myklebust <Trond.Myklebust@netapp.com> - Neil Brown <neilb@suse.de> - Christoph Hellwig <hch@infradead.org> - Peter Zijlstra <a.p.zijlstra@chello.nl> - Mike Christie <michaelc@cs.wisc.edu> - " Eric B Munson <emunson@mgebm.net>\0" + "To\0Fred Isaman <iisaman-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org>\0" + "Cc\0Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>" + Linux-MM <linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org> + Linux-Netdev <netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> + Linux-NFS <linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> + LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> + David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org> + Trond Myklebust <Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org> + Neil Brown <neilb-l3A5Bk7waGM@public.gmane.org> + Christoph Hellwig <hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> + Peter Zijlstra <a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw@public.gmane.org> + Mike Christie <michaelc-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org> + " Eric B Munson <emunson-CVBTeua0HjReoWH0uzbU5w@public.gmane.org>\0" "\00:1\0" "b\0" - "> On Mon, Apr 16, 2012 at 9:44 AM, Mel Gorman <mgorman@suse.de> wrote:\n" + "> On Mon, Apr 16, 2012 at 9:44 AM, Mel Gorman <mgorman-l3A5Bk7waGM@public.gmane.org> wrote:\n" "> > On Mon, Apr 16, 2012 at 09:10:04AM -0400, Fred Isaman wrote:\n" "> >> > <SNIP>\n" "> >> > -static struct nfs_page *nfs_page_find_request_locked(struct page *page)\n" @@ -69,6 +70,10 @@ "\n" "-- \n" "Mel Gorman\n" - SUSE Labs + "SUSE Labs\n" + "--\n" + "To unsubscribe from this list: send the line \"unsubscribe linux-nfs\" in\n" + "the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org\n" + More majordomo info at http://vger.kernel.org/majordomo-info.html -dc726d4740e6793b8b862b7b45872a4d6d03452431925a0895beaa4614d4a8bf +8a658d7f3cf77552e41c7b39c1a0591be5c61cea714649c0bf02d1734e3663c3
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.