lkml.org 
[lkml]   [2012]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 55/73] fallthru: tmpfs support for lookup of d_type/d_ino in fallthrus [ver #2]
    Date
    From: Valerie Aurora <vaurora@redhat.com>

    Now that we have full union lookup support, lookup the true d_type and
    d_ino of a fallthru.

    Original-author: Valerie Aurora <vaurora@redhat.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: linux-mm@kvack.org
    ---

    fs/libfs.c | 11 ++++++++---
    1 files changed, 8 insertions(+), 3 deletions(-)

    diff --git a/fs/libfs.c b/fs/libfs.c
    index 43f1ac2..bd9388f 100644
    --- a/fs/libfs.c
    +++ b/fs/libfs.c
    @@ -143,6 +143,7 @@ int dcache_readdir(struct file * filp, void * dirent, filldir_t filldir)
    ino_t ino;
    char d_type;
    int i = filp->f_pos;
    + int err = 0;

    switch (i) {
    case 0:
    @@ -177,9 +178,13 @@ int dcache_readdir(struct file * filp, void * dirent, filldir_t filldir)
    spin_unlock(&next->d_lock);
    spin_unlock(&dentry->d_lock);
    if (d_is_fallthru(next)) {
    - /* XXX placeholder until generic_readdir_fallthru() arrives */
    - ino = 1;
    - d_type = DT_UNKNOWN;
    + /* On tmpfs, should only fail with ENOMEM, EIO, etc. */
    + err = generic_readdir_fallthru(filp->f_path.dentry,
    + next->d_name.name,
    + next->d_name.len,
    + &ino, &d_type);
    + if (err)
    + return err;
    } else {
    ino = next->d_inode->i_ino;
    d_type = dt_type(next->d_inode);


    \
     
     \ /
      Last update: 2012-02-21 20:57    [W:0.036 / U:121.268 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site