dir.c (cda57a1ef6f0da7e24f392ffdf00538ec0480310) dir.c (07b5ce8ef2d87f1914054804720d6facbaa3f4ce)
1/*
2 * linux/fs/nfs/dir.c
3 *
4 * Copyright (C) 1992 Rick Sladkey
5 *
6 * nfs directory handling functions
7 *
8 * 10 Apr 1996 Added silly rename for unlink --okir

--- 804 unchanged lines hidden (view full) ---

813 */
814static int nfs_readdir(struct file *file, struct dir_context *ctx)
815{
816 struct dentry *dentry = file->f_path.dentry;
817 struct inode *inode = dentry->d_inode;
818 nfs_readdir_descriptor_t my_desc,
819 *desc = &my_desc;
820 struct nfs_open_dir_context *dir_ctx = file->private_data;
1/*
2 * linux/fs/nfs/dir.c
3 *
4 * Copyright (C) 1992 Rick Sladkey
5 *
6 * nfs directory handling functions
7 *
8 * 10 Apr 1996 Added silly rename for unlink --okir

--- 804 unchanged lines hidden (view full) ---

813 */
814static int nfs_readdir(struct file *file, struct dir_context *ctx)
815{
816 struct dentry *dentry = file->f_path.dentry;
817 struct inode *inode = dentry->d_inode;
818 nfs_readdir_descriptor_t my_desc,
819 *desc = &my_desc;
820 struct nfs_open_dir_context *dir_ctx = file->private_data;
821 int res;
821 int res = 0;
822
823 dfprintk(FILE, "NFS: readdir(%s/%s) starting at cookie %llu\n",
824 dentry->d_parent->d_name.name, dentry->d_name.name,
825 (long long)ctx->pos);
826 nfs_inc_stats(inode, NFSIOS_VFSGETDENTS);
827
828 /*
829 * ctx->pos points to the dirent entry number.

--- 5 unchanged lines hidden (view full) ---

835
836 desc->file = file;
837 desc->ctx = ctx;
838 desc->dir_cookie = &dir_ctx->dir_cookie;
839 desc->decode = NFS_PROTO(inode)->decode_dirent;
840 desc->plus = nfs_use_readdirplus(inode, ctx) ? 1 : 0;
841
842 nfs_block_sillyrename(dentry);
822
823 dfprintk(FILE, "NFS: readdir(%s/%s) starting at cookie %llu\n",
824 dentry->d_parent->d_name.name, dentry->d_name.name,
825 (long long)ctx->pos);
826 nfs_inc_stats(inode, NFSIOS_VFSGETDENTS);
827
828 /*
829 * ctx->pos points to the dirent entry number.

--- 5 unchanged lines hidden (view full) ---

835
836 desc->file = file;
837 desc->ctx = ctx;
838 desc->dir_cookie = &dir_ctx->dir_cookie;
839 desc->decode = NFS_PROTO(inode)->decode_dirent;
840 desc->plus = nfs_use_readdirplus(inode, ctx) ? 1 : 0;
841
842 nfs_block_sillyrename(dentry);
843 res = nfs_revalidate_mapping(inode, file->f_mapping);
843 if (ctx->pos == 0 || nfs_attribute_cache_expired(inode))
844 res = nfs_revalidate_mapping(inode, file->f_mapping);
844 if (res < 0)
845 goto out;
846
847 do {
848 res = readdir_search_pagecache(desc);
849
850 if (res == -EBADCOOKIE) {
851 res = 0;

--- 1437 unchanged lines hidden ---
845 if (res < 0)
846 goto out;
847
848 do {
849 res = readdir_search_pagecache(desc);
850
851 if (res == -EBADCOOKIE) {
852 res = 0;

--- 1437 unchanged lines hidden ---