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
This commit is contained in:
@@ -841,7 +841,6 @@ const struct file_operations fat_dir_operations = {
|
|||||||
.compat_ioctl = fat_compat_dir_ioctl,
|
.compat_ioctl = fat_compat_dir_ioctl,
|
||||||
#endif
|
#endif
|
||||||
.fsync = file_fsync,
|
.fsync = file_fsync,
|
||||||
.llseek = generic_file_llseek,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int fat_get_short_entry(struct inode *dir, loff_t *pos,
|
static int fat_get_short_entry(struct inode *dir, loff_t *pos,
|
||||||
|
@@ -749,6 +749,8 @@ static struct dentry *fat_get_parent(struct dentry *child)
|
|||||||
brelse(bh);
|
brelse(bh);
|
||||||
|
|
||||||
parent = d_obtain_alias(inode);
|
parent = d_obtain_alias(inode);
|
||||||
|
if (!IS_ERR(parent))
|
||||||
|
parent->d_op = sb->s_root->d_op;
|
||||||
out:
|
out:
|
||||||
unlock_super(sb);
|
unlock_super(sb);
|
||||||
|
|
||||||
|
@@ -78,7 +78,7 @@ static int vfat_revalidate_ci(struct dentry *dentry, struct nameidata *nd)
|
|||||||
* for creation.
|
* for creation.
|
||||||
*/
|
*/
|
||||||
if (!(nd->flags & (LOOKUP_CONTINUE | LOOKUP_PARENT))) {
|
if (!(nd->flags & (LOOKUP_CONTINUE | LOOKUP_PARENT))) {
|
||||||
if (nd->flags & LOOKUP_CREATE)
|
if (nd->flags & (LOOKUP_CREATE | LOOKUP_RENAME_TARGET))
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user