|
@@ -208,7 +208,7 @@ static struct dentry *msdos_lookup(struct inode *dir, struct dentry *dentry,
|
|
|
struct inode *inode;
|
|
|
int err;
|
|
|
|
|
|
- lock_super(sb);
|
|
|
+ mutex_lock(&MSDOS_SB(sb)->s_lock);
|
|
|
err = msdos_find(dir, dentry->d_name.name, dentry->d_name.len, &sinfo);
|
|
|
switch (err) {
|
|
|
case -ENOENT:
|
|
@@ -221,7 +221,7 @@ static struct dentry *msdos_lookup(struct inode *dir, struct dentry *dentry,
|
|
|
default:
|
|
|
inode = ERR_PTR(err);
|
|
|
}
|
|
|
- unlock_super(sb);
|
|
|
+ mutex_unlock(&MSDOS_SB(sb)->s_lock);
|
|
|
return d_splice_alias(inode, dentry);
|
|
|
}
|
|
|
|
|
@@ -273,7 +273,7 @@ static int msdos_create(struct inode *dir, struct dentry *dentry, umode_t mode,
|
|
|
unsigned char msdos_name[MSDOS_NAME];
|
|
|
int err, is_hid;
|
|
|
|
|
|
- lock_super(sb);
|
|
|
+ mutex_lock(&MSDOS_SB(sb)->s_lock);
|
|
|
|
|
|
err = msdos_format_name(dentry->d_name.name, dentry->d_name.len,
|
|
|
msdos_name, &MSDOS_SB(sb)->options);
|
|
@@ -302,7 +302,7 @@ static int msdos_create(struct inode *dir, struct dentry *dentry, umode_t mode,
|
|
|
|
|
|
d_instantiate(dentry, inode);
|
|
|
out:
|
|
|
- unlock_super(sb);
|
|
|
+ mutex_unlock(&MSDOS_SB(sb)->s_lock);
|
|
|
if (!err)
|
|
|
err = fat_flush_inodes(sb, dir, inode);
|
|
|
return err;
|
|
@@ -316,7 +316,7 @@ static int msdos_rmdir(struct inode *dir, struct dentry *dentry)
|
|
|
struct fat_slot_info sinfo;
|
|
|
int err;
|
|
|
|
|
|
- lock_super(sb);
|
|
|
+ mutex_lock(&MSDOS_SB(sb)->s_lock);
|
|
|
/*
|
|
|
* Check whether the directory is not in use, then check
|
|
|
* whether it is empty.
|
|
@@ -337,7 +337,7 @@ static int msdos_rmdir(struct inode *dir, struct dentry *dentry)
|
|
|
inode->i_ctime = CURRENT_TIME_SEC;
|
|
|
fat_detach(inode);
|
|
|
out:
|
|
|
- unlock_super(sb);
|
|
|
+ mutex_unlock(&MSDOS_SB(sb)->s_lock);
|
|
|
if (!err)
|
|
|
err = fat_flush_inodes(sb, dir, inode);
|
|
|
|
|
@@ -354,7 +354,7 @@ static int msdos_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
|
|
|
struct timespec ts;
|
|
|
int err, is_hid, cluster;
|
|
|
|
|
|
- lock_super(sb);
|
|
|
+ mutex_lock(&MSDOS_SB(sb)->s_lock);
|
|
|
|
|
|
err = msdos_format_name(dentry->d_name.name, dentry->d_name.len,
|
|
|
msdos_name, &MSDOS_SB(sb)->options);
|
|
@@ -392,14 +392,14 @@ static int msdos_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
|
|
|
|
|
|
d_instantiate(dentry, inode);
|
|
|
|
|
|
- unlock_super(sb);
|
|
|
+ mutex_unlock(&MSDOS_SB(sb)->s_lock);
|
|
|
fat_flush_inodes(sb, dir, inode);
|
|
|
return 0;
|
|
|
|
|
|
out_free:
|
|
|
fat_free_clusters(dir, cluster);
|
|
|
out:
|
|
|
- unlock_super(sb);
|
|
|
+ mutex_unlock(&MSDOS_SB(sb)->s_lock);
|
|
|
return err;
|
|
|
}
|
|
|
|
|
@@ -411,7 +411,7 @@ static int msdos_unlink(struct inode *dir, struct dentry *dentry)
|
|
|
struct fat_slot_info sinfo;
|
|
|
int err;
|
|
|
|
|
|
- lock_super(sb);
|
|
|
+ mutex_lock(&MSDOS_SB(sb)->s_lock);
|
|
|
err = msdos_find(dir, dentry->d_name.name, dentry->d_name.len, &sinfo);
|
|
|
if (err)
|
|
|
goto out;
|
|
@@ -423,7 +423,7 @@ static int msdos_unlink(struct inode *dir, struct dentry *dentry)
|
|
|
inode->i_ctime = CURRENT_TIME_SEC;
|
|
|
fat_detach(inode);
|
|
|
out:
|
|
|
- unlock_super(sb);
|
|
|
+ mutex_unlock(&MSDOS_SB(sb)->s_lock);
|
|
|
if (!err)
|
|
|
err = fat_flush_inodes(sb, dir, inode);
|
|
|
|
|
@@ -606,7 +606,7 @@ static int msdos_rename(struct inode *old_dir, struct dentry *old_dentry,
|
|
|
unsigned char old_msdos_name[MSDOS_NAME], new_msdos_name[MSDOS_NAME];
|
|
|
int err, is_hid;
|
|
|
|
|
|
- lock_super(sb);
|
|
|
+ mutex_lock(&MSDOS_SB(sb)->s_lock);
|
|
|
|
|
|
err = msdos_format_name(old_dentry->d_name.name,
|
|
|
old_dentry->d_name.len, old_msdos_name,
|
|
@@ -625,7 +625,7 @@ static int msdos_rename(struct inode *old_dir, struct dentry *old_dentry,
|
|
|
err = do_msdos_rename(old_dir, old_msdos_name, old_dentry,
|
|
|
new_dir, new_msdos_name, new_dentry, is_hid);
|
|
|
out:
|
|
|
- unlock_super(sb);
|
|
|
+ mutex_unlock(&MSDOS_SB(sb)->s_lock);
|
|
|
if (!err)
|
|
|
err = fat_flush_inodes(sb, old_dir, new_dir);
|
|
|
return err;
|