diff options
Diffstat (limited to 'fs/nfs/dir.c')
-rw-r--r-- | fs/nfs/dir.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 5d73fbd67070..24571067bf72 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
@@ -603,7 +603,15 @@ out: | |||
603 | 603 | ||
604 | static loff_t nfs_llseek_dir(struct file *filp, loff_t offset, int origin) | 604 | static loff_t nfs_llseek_dir(struct file *filp, loff_t offset, int origin) |
605 | { | 605 | { |
606 | mutex_lock(&filp->f_path.dentry->d_inode->i_mutex); | 606 | struct dentry *dentry = filp->f_path.dentry; |
607 | struct inode *inode = dentry->d_inode; | ||
608 | |||
609 | dfprintk(VFS, "NFS: llseek dir(%s/%s, %lld, %d)\n", | ||
610 | dentry->d_parent->d_name.name, | ||
611 | dentry->d_name.name, | ||
612 | offset, origin); | ||
613 | |||
614 | mutex_lock(&inode->i_mutex); | ||
607 | switch (origin) { | 615 | switch (origin) { |
608 | case 1: | 616 | case 1: |
609 | offset += filp->f_pos; | 617 | offset += filp->f_pos; |
@@ -619,7 +627,7 @@ static loff_t nfs_llseek_dir(struct file *filp, loff_t offset, int origin) | |||
619 | nfs_file_open_context(filp)->dir_cookie = 0; | 627 | nfs_file_open_context(filp)->dir_cookie = 0; |
620 | } | 628 | } |
621 | out: | 629 | out: |
622 | mutex_unlock(&filp->f_path.dentry->d_inode->i_mutex); | 630 | mutex_unlock(&inode->i_mutex); |
623 | return offset; | 631 | return offset; |
624 | } | 632 | } |
625 | 633 | ||