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 --- |