lkml.org 
[lkml]   [2012]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] mm: shmem: unlock valid page
    On Sun, 4 Mar 2012, Hillf Danton wrote:
    > In shmem_read_mapping_page_gfp() page is unlocked if no error returned,
    > so the unlocked page has to valid.
    >
    > To guarantee that validity, when getting page, success result is feed
    > back to caller only when page is valid.
    >
    > Signed-off-by: Hillf Danton <dhillf@gmail.com>

    I don't understand your description, nor its relation to the patch.

    NAK to the patch: when no page has previously been allocated, the
    SGP_READ case avoids allocation and returns NULL - do_shmem_file_read
    then copies the ZERO_PAGE instead, avoiding lots of unnecessary memory
    allocation when reading a large sparse file.

    Hugh

    > ---
    >
    > --- a/mm/shmem.c Sun Mar 4 12:17:42 2012
    > +++ b/mm/shmem.c Sun Mar 4 12:26:56 2012
    > @@ -889,13 +889,13 @@ repeat:
    > goto failed;
    > }
    >
    > - if (page || (sgp == SGP_READ && !swap.val)) {
    > + if (page) {
    > /*
    > * Once we can get the page lock, it must be uptodate:
    > * if there were an error in reading back from swap,
    > * the page would not be inserted into the filecache.
    > */
    > - BUG_ON(page && !PageUptodate(page));
    > + BUG_ON(!PageUptodate(page));
    > *pagep = page;
    > return 0;
    > }
    > --
    >


    \
     
     \ /
      Last update: 2012-03-04 18:55    [W:0.021 / U:0.608 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site