diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 23:33:34 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 23:33:34 -0500 |
| commit | ec270e59a74eee972006a87c8e12514a20588369 (patch) | |
| tree | 6ec13c87f75322a2816c09bb290b6e66bf5116e4 | |
| parent | 6a94cb73064c952255336cc57731904174b2c58f (diff) | |
| parent | 5a6bb10393eb9a1985e97af12f0cb2906bcbf1af (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6:
fat: make sure to set d_ops in fat_get_parent
fat: fix duplicate addition of ->llseek handler
fat: drop negative dentry on rename() path
| -rw-r--r-- | fs/fat/dir.c | 1 | ||||
| -rw-r--r-- | fs/fat/inode.c | 2 | ||||
| -rw-r--r-- | fs/fat/namei_vfat.c | 2 |
3 files changed, 3 insertions, 2 deletions
diff --git a/fs/fat/dir.c b/fs/fat/dir.c index 67e058357098..3a7f603b6982 100644 --- a/fs/fat/dir.c +++ b/fs/fat/dir.c | |||
| @@ -841,7 +841,6 @@ const struct file_operations fat_dir_operations = { | |||
| 841 | .compat_ioctl = fat_compat_dir_ioctl, | 841 | .compat_ioctl = fat_compat_dir_ioctl, |
| 842 | #endif | 842 | #endif |
| 843 | .fsync = file_fsync, | 843 | .fsync = file_fsync, |
| 844 | .llseek = generic_file_llseek, | ||
| 845 | }; | 844 | }; |
| 846 | 845 | ||
| 847 | static int fat_get_short_entry(struct inode *dir, loff_t *pos, | 846 | static int fat_get_short_entry(struct inode *dir, loff_t *pos, |
diff --git a/fs/fat/inode.c b/fs/fat/inode.c index d937aaf77374..6b74d09adbe5 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c | |||
| @@ -749,6 +749,8 @@ static struct dentry *fat_get_parent(struct dentry *child) | |||
| 749 | brelse(bh); | 749 | brelse(bh); |
| 750 | 750 | ||
| 751 | parent = d_obtain_alias(inode); | 751 | parent = d_obtain_alias(inode); |
| 752 | if (!IS_ERR(parent)) | ||
| 753 | parent->d_op = sb->s_root->d_op; | ||
| 752 | out: | 754 | out: |
| 753 | unlock_super(sb); | 755 | unlock_super(sb); |
| 754 | 756 | ||
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c index bf326d4356a3..8ae32e37673c 100644 --- a/fs/fat/namei_vfat.c +++ b/fs/fat/namei_vfat.c | |||
| @@ -78,7 +78,7 @@ static int vfat_revalidate_ci(struct dentry *dentry, struct nameidata *nd) | |||
| 78 | * for creation. | 78 | * for creation. |
| 79 | */ | 79 | */ |
| 80 | if (!(nd->flags & (LOOKUP_CONTINUE | LOOKUP_PARENT))) { | 80 | if (!(nd->flags & (LOOKUP_CONTINUE | LOOKUP_PARENT))) { |
| 81 | if (nd->flags & LOOKUP_CREATE) | 81 | if (nd->flags & (LOOKUP_CREATE | LOOKUP_RENAME_TARGET)) |
| 82 | return 0; | 82 | return 0; |
| 83 | } | 83 | } |
| 84 | 84 | ||
