aboutsummaryrefslogtreecommitdiffstats
path: root/fs/msdos/namei.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-09-30 23:55:03 -0400
committerJeff Garzik <jeff@garzik.org>2006-09-30 23:55:03 -0400
commite993835441734c184d70d3716eed78a08eeb71c2 (patch)
tree583aa17813cdae1c4640e353f8c6df3f197e7548 /fs/msdos/namei.c
parent360f654e7cda850034f3f6252a7a7cff3fa77356 (diff)
parent1bdfd554be94def718323659173517c5d4a69d25 (diff)
downloadkernel_samsung_smdk4412-e993835441734c184d70d3716eed78a08eeb71c2.zip
kernel_samsung_smdk4412-e993835441734c184d70d3716eed78a08eeb71c2.tar.gz
kernel_samsung_smdk4412-e993835441734c184d70d3716eed78a08eeb71c2.tar.bz2
Merge branch 'master' into upstream
Diffstat (limited to 'fs/msdos/namei.c')
-rw-r--r--fs/msdos/namei.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/fs/msdos/namei.c b/fs/msdos/namei.c
index 9e44158..d220165 100644
--- a/fs/msdos/namei.c
+++ b/fs/msdos/namei.c
@@ -280,7 +280,7 @@ static int msdos_create(struct inode *dir, struct dentry *dentry, int mode,
struct nameidata *nd)
{
struct super_block *sb = dir->i_sb;
- struct inode *inode;
+ struct inode *inode = NULL;
struct fat_slot_info sinfo;
struct timespec ts;
unsigned char msdos_name[MSDOS_NAME];
@@ -316,6 +316,8 @@ static int msdos_create(struct inode *dir, struct dentry *dentry, int mode,
d_instantiate(dentry, inode);
out:
unlock_kernel();
+ if (!err)
+ err = fat_flush_inodes(sb, dir, inode);
return err;
}
@@ -348,6 +350,8 @@ static int msdos_rmdir(struct inode *dir, struct dentry *dentry)
fat_detach(inode);
out:
unlock_kernel();
+ if (!err)
+ err = fat_flush_inodes(inode->i_sb, dir, inode);
return err;
}
@@ -401,6 +405,7 @@ static int msdos_mkdir(struct inode *dir, struct dentry *dentry, int mode)
d_instantiate(dentry, inode);
unlock_kernel();
+ fat_flush_inodes(sb, dir, inode);
return 0;
out_free:
@@ -430,6 +435,8 @@ static int msdos_unlink(struct inode *dir, struct dentry *dentry)
fat_detach(inode);
out:
unlock_kernel();
+ if (!err)
+ err = fat_flush_inodes(inode->i_sb, dir, inode);
return err;
}
@@ -635,6 +642,8 @@ static int msdos_rename(struct inode *old_dir, struct dentry *old_dentry,
new_dir, new_msdos_name, new_dentry, is_hid);
out:
unlock_kernel();
+ if (!err)
+ err = fat_flush_inodes(old_dir->i_sb, old_dir, new_dir);
return err;
}