xfs
[Top] [All Lists]

RE: [PATCH v6 3/7] mm: add find_get_entries_tag()

To: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>, "linux-kernel@xxxxxxxxxxxxxxx" <linux-kernel@xxxxxxxxxxxxxxx>
Subject: RE: [PATCH v6 3/7] mm: add find_get_entries_tag()
From: "Elliott, Robert (Persistent Memory)" <elliott@xxxxxxx>
Date: Thu, 24 Dec 2015 00:28:24 +0000
Accept-language: en-US
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>, Dave Chinner <david@xxxxxxxxxxxxx>, "J. Bruce Fields" <bfields@xxxxxxxxxxxx>, "linux-mm@xxxxxxxxx" <linux-mm@xxxxxxxxx>, Andreas Dilger <adilger.kernel@xxxxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>, Jeff Layton <jlayton@xxxxxxxxxxxxxxx>, "linux-nvdimm@xxxxxxxxxxxx" <linux-nvdimm@xxxxxxxxxxxx>, "x86@xxxxxxxxxx" <x86@xxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxxxxx>, "linux-ext4@xxxxxxxxxxxxxxx" <linux-ext4@xxxxxxxxxxxxxxx>, "xfs@xxxxxxxxxxx" <xfs@xxxxxxxxxxx>, Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>, Theodore Ts'o <tytso@xxxxxxx>, Jan Kara <jack@xxxxxxxx>, "linux-fsdevel@xxxxxxxxxxxxxxx" <linux-fsdevel@xxxxxxxxxxxxxxx>, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>, Matthew Wilcox <matthew.r.wilcox@xxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1450899560-26708-4-git-send-email-ross.zwisler@xxxxxxxxxxxxxxx>
References: <1450899560-26708-1-git-send-email-ross.zwisler@xxxxxxxxxxxxxxx> <1450899560-26708-4-git-send-email-ross.zwisler@xxxxxxxxxxxxxxx>
Thread-index: AQHRPbmsbX3XKjMr3UqiwXL/0gnVB57ZRqRA
Thread-topic: [PATCH v6 3/7] mm: add find_get_entries_tag()
> -----Original Message-----
> From: Linux-nvdimm [mailto:linux-nvdimm-bounces@xxxxxxxxxxxx] On Behalf Of
> Ross Zwisler
> Sent: Wednesday, December 23, 2015 1:39 PM
> Subject: [PATCH v6 3/7] mm: add find_get_entries_tag()
> 
...
> diff --git a/mm/filemap.c b/mm/filemap.c
...
> +unsigned find_get_entries_tag(struct address_space *mapping, pgoff_t start,
> +                     int tag, unsigned int nr_entries,
> +                     struct page **entries, pgoff_t *indices)
> +{
> +     void **slot;
> +     unsigned int ret = 0;
...
> +     radix_tree_for_each_tagged(slot, &mapping->page_tree,
> +                                &iter, start, tag) {
...
> +             indices[ret] = iter.index;
> +             entries[ret] = page;
> +             if (++ret == nr_entries)
> +                     break;
> +     }

Using >= would provide more safety from buffer overflow
problems in case ret ever jumped ahead by more than one.
---
Robert Elliott, HPE Persistent Memory

<Prev in Thread] Current Thread [Next in Thread>