lkml.org 
[lkml]   [2007]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 16/16] NFS: Display local caching state [try #3]
    Date
    Display the local caching state in /proc/fs/nfsfs/volumes.

    Signed-off-by: David Howells <dhowells@redhat.com>
    ---

    fs/nfs/client.c | 7 ++++---
    fs/nfs/fscache.h | 12 ++++++++++++
    2 files changed, 16 insertions(+), 3 deletions(-)

    diff --git a/fs/nfs/client.c b/fs/nfs/client.c
    index 0de4db4..d350668 100644
    --- a/fs/nfs/client.c
    +++ b/fs/nfs/client.c
    @@ -1319,7 +1319,7 @@ static int nfs_volume_list_show(struct seq_file *m, void *v)

    /* display header on line 1 */
    if (v == &nfs_volume_list) {
    - seq_puts(m, "NV SERVER PORT DEV FSID\n");
    + seq_puts(m, "NV SERVER PORT DEV FSID FSC\n");
    return 0;
    }
    /* display one transport per line on subsequent lines */
    @@ -1333,12 +1333,13 @@ static int nfs_volume_list_show(struct seq_file *m, void *v)
    (unsigned long long) server->fsid.major,
    (unsigned long long) server->fsid.minor);

    - seq_printf(m, "v%d %02x%02x%02x%02x %4hx %-7s %-17s\n",
    + seq_printf(m, "v%d %02x%02x%02x%02x %4hx %-7s %-17s %s\n",
    clp->cl_nfsversion,
    NIPQUAD(clp->cl_addr.sin_addr),
    ntohs(clp->cl_addr.sin_port),
    dev,
    - fsid);
    + fsid,
    + nfs_server_fscache_state(server));

    return 0;
    }
    diff --git a/fs/nfs/fscache.h b/fs/nfs/fscache.h
    index 44bb0d1..77f3450 100644
    --- a/fs/nfs/fscache.h
    +++ b/fs/nfs/fscache.h
    @@ -56,6 +56,17 @@ extern void __nfs_fscache_invalidate_page(struct page *, struct inode *);
    extern int nfs_fscache_release_page(struct page *, gfp_t);

    /*
    + * indicate the client caching state as readable text
    + */
    +static inline const char *nfs_server_fscache_state(struct nfs_server *server)
    +{
    + if (server->nfs_client->fscache &&
    + (server->options & NFS_OPTION_FSCACHE))
    + return "yes";
    + return "no ";
    +}
    +
    +/*
    * release the caching state associated with a page if undergoing complete page
    * invalidation
    */
    @@ -110,6 +121,7 @@ static inline void nfs_fscache_unregister(void) {}
    static inline void nfs_fscache_get_client_cookie(struct nfs_client *clp) {}
    static inline void nfs4_fscache_get_client_cookie(struct nfs_client *clp) {}
    static inline void nfs_fscache_release_client_cookie(struct nfs_client *clp) {}
    +static inline const char *nfs_server_fscache_state(struct nfs_server *server) { return "no "; }

    static inline void nfs_fscache_init_fh_cookie(struct inode *inode) {}
    static inline void nfs_fscache_enable_fh_cookie(struct inode *inode) {}
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-08-10 18:19    [W:4.289 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site