aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/dir.c')
-rw-r--r--fs/nfs/dir.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index e4a04d16b8b0..dd02db43cbe6 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -407,7 +407,7 @@ int nfs_do_filldir(nfs_readdir_descriptor_t *desc, void *dirent,
407 struct file *file = desc->file; 407 struct file *file = desc->file;
408 struct nfs_entry *entry = desc->entry; 408 struct nfs_entry *entry = desc->entry;
409 struct dentry *dentry = NULL; 409 struct dentry *dentry = NULL;
410 unsigned long fileid; 410 u64 fileid;
411 int loop_count = 0, 411 int loop_count = 0,
412 res; 412 res;
413 413
@@ -418,7 +418,7 @@ int nfs_do_filldir(nfs_readdir_descriptor_t *desc, void *dirent,
418 unsigned d_type = DT_UNKNOWN; 418 unsigned d_type = DT_UNKNOWN;
419 /* Note: entry->prev_cookie contains the cookie for 419 /* Note: entry->prev_cookie contains the cookie for
420 * retrieving the current dirent on the server */ 420 * retrieving the current dirent on the server */
421 fileid = nfs_fileid_to_ino_t(entry->ino); 421 fileid = entry->ino;
422 422
423 /* Get a dentry if we have one */ 423 /* Get a dentry if we have one */
424 if (dentry != NULL) 424 if (dentry != NULL)
@@ -428,7 +428,7 @@ int nfs_do_filldir(nfs_readdir_descriptor_t *desc, void *dirent,
428 /* Use readdirplus info */ 428 /* Use readdirplus info */
429 if (dentry != NULL && dentry->d_inode != NULL) { 429 if (dentry != NULL && dentry->d_inode != NULL) {
430 d_type = dt_type(dentry->d_inode); 430 d_type = dt_type(dentry->d_inode);
431 fileid = dentry->d_inode->i_ino; 431 fileid = NFS_FILEID(dentry->d_inode);
432 } 432 }
433 433
434 res = filldir(dirent, entry->name, entry->len, 434 res = filldir(dirent, entry->name, entry->len,
@@ -1350,9 +1350,9 @@ static int nfs_rmdir(struct inode *dir, struct dentry *dentry)
1350static int nfs_sillyrename(struct inode *dir, struct dentry *dentry) 1350static int nfs_sillyrename(struct inode *dir, struct dentry *dentry)
1351{ 1351{
1352 static unsigned int sillycounter; 1352 static unsigned int sillycounter;
1353 const int i_inosize = sizeof(dir->i_ino)*2; 1353 const int fileidsize = sizeof(NFS_FILEID(dentry->d_inode))*2;
1354 const int countersize = sizeof(sillycounter)*2; 1354 const int countersize = sizeof(sillycounter)*2;
1355 const int slen = sizeof(".nfs") + i_inosize + countersize - 1; 1355 const int slen = sizeof(".nfs")+fileidsize+countersize-1;
1356 char silly[slen+1]; 1356 char silly[slen+1];
1357 struct qstr qsilly; 1357 struct qstr qsilly;
1358 struct dentry *sdentry; 1358 struct dentry *sdentry;
@@ -1370,8 +1370,9 @@ static int nfs_sillyrename(struct inode *dir, struct dentry *dentry)
1370 if (dentry->d_flags & DCACHE_NFSFS_RENAMED) 1370 if (dentry->d_flags & DCACHE_NFSFS_RENAMED)
1371 goto out; 1371 goto out;
1372 1372
1373 sprintf(silly, ".nfs%*.*lx", 1373 sprintf(silly, ".nfs%*.*Lx",
1374 i_inosize, i_inosize, dentry->d_inode->i_ino); 1374 fileidsize, fileidsize,
1375 (unsigned long long)NFS_FILEID(dentry->d_inode));
1375 1376
1376 /* Return delegation in anticipation of the rename */ 1377 /* Return delegation in anticipation of the rename */
1377 nfs_inode_return_delegation(dentry->d_inode); 1378 nfs_inode_return_delegation(dentry->d_inode);