diff options
author | Marco Stornelli <marco.stornelli@gmail.com> | 2012-10-06 06:40:03 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-09 23:33:38 -0400 |
commit | e40b34c7921534a46f7bae23ec6646d3d9c2c7b2 (patch) | |
tree | 84a7ffac7bce215827fbde733aad964a5e38eaa4 /fs/fat/namei_msdos.c | |
parent | 67e2c19a3bcd32172c1d67294a1d6bb4bc60ca77 (diff) |
fat: drop lock/unlock super
Removed lock/unlock super. Added a new private s_lock mutex.
Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/fat/namei_msdos.c')
-rw-r--r-- | fs/fat/namei_msdos.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/fs/fat/namei_msdos.c b/fs/fat/namei_msdos.c index c1055e778fff..e2cfda94a28d 100644 --- a/fs/fat/namei_msdos.c +++ b/fs/fat/namei_msdos.c | |||
@@ -208,7 +208,7 @@ static struct dentry *msdos_lookup(struct inode *dir, struct dentry *dentry, | |||
208 | struct inode *inode; | 208 | struct inode *inode; |
209 | int err; | 209 | int err; |
210 | 210 | ||
211 | lock_super(sb); | 211 | mutex_lock(&MSDOS_SB(sb)->s_lock); |
212 | err = msdos_find(dir, dentry->d_name.name, dentry->d_name.len, &sinfo); | 212 | err = msdos_find(dir, dentry->d_name.name, dentry->d_name.len, &sinfo); |
213 | switch (err) { | 213 | switch (err) { |
214 | case -ENOENT: | 214 | case -ENOENT: |
@@ -221,7 +221,7 @@ static struct dentry *msdos_lookup(struct inode *dir, struct dentry *dentry, | |||
221 | default: | 221 | default: |
222 | inode = ERR_PTR(err); | 222 | inode = ERR_PTR(err); |
223 | } | 223 | } |
224 | unlock_super(sb); | 224 | mutex_unlock(&MSDOS_SB(sb)->s_lock); |
225 | return d_splice_alias(inode, dentry); | 225 | return d_splice_alias(inode, dentry); |
226 | } | 226 | } |
227 | 227 | ||
@@ -273,7 +273,7 @@ static int msdos_create(struct inode *dir, struct dentry *dentry, umode_t mode, | |||
273 | unsigned char msdos_name[MSDOS_NAME]; | 273 | unsigned char msdos_name[MSDOS_NAME]; |
274 | int err, is_hid; | 274 | int err, is_hid; |
275 | 275 | ||
276 | lock_super(sb); | 276 | mutex_lock(&MSDOS_SB(sb)->s_lock); |
277 | 277 | ||
278 | err = msdos_format_name(dentry->d_name.name, dentry->d_name.len, | 278 | err = msdos_format_name(dentry->d_name.name, dentry->d_name.len, |
279 | msdos_name, &MSDOS_SB(sb)->options); | 279 | msdos_name, &MSDOS_SB(sb)->options); |
@@ -302,7 +302,7 @@ static int msdos_create(struct inode *dir, struct dentry *dentry, umode_t mode, | |||
302 | 302 | ||
303 | d_instantiate(dentry, inode); | 303 | d_instantiate(dentry, inode); |
304 | out: | 304 | out: |
305 | unlock_super(sb); | 305 | mutex_unlock(&MSDOS_SB(sb)->s_lock); |
306 | if (!err) | 306 | if (!err) |
307 | err = fat_flush_inodes(sb, dir, inode); | 307 | err = fat_flush_inodes(sb, dir, inode); |
308 | return err; | 308 | return err; |
@@ -316,7 +316,7 @@ static int msdos_rmdir(struct inode *dir, struct dentry *dentry) | |||
316 | struct fat_slot_info sinfo; | 316 | struct fat_slot_info sinfo; |
317 | int err; | 317 | int err; |
318 | 318 | ||
319 | lock_super(sb); | 319 | mutex_lock(&MSDOS_SB(sb)->s_lock); |
320 | /* | 320 | /* |
321 | * Check whether the directory is not in use, then check | 321 | * Check whether the directory is not in use, then check |
322 | * whether it is empty. | 322 | * whether it is empty. |
@@ -337,7 +337,7 @@ static int msdos_rmdir(struct inode *dir, struct dentry *dentry) | |||
337 | inode->i_ctime = CURRENT_TIME_SEC; | 337 | inode->i_ctime = CURRENT_TIME_SEC; |
338 | fat_detach(inode); | 338 | fat_detach(inode); |
339 | out: | 339 | out: |
340 | unlock_super(sb); | 340 | mutex_unlock(&MSDOS_SB(sb)->s_lock); |
341 | if (!err) | 341 | if (!err) |
342 | err = fat_flush_inodes(sb, dir, inode); | 342 | err = fat_flush_inodes(sb, dir, inode); |
343 | 343 | ||
@@ -354,7 +354,7 @@ static int msdos_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) | |||
354 | struct timespec ts; | 354 | struct timespec ts; |
355 | int err, is_hid, cluster; | 355 | int err, is_hid, cluster; |
356 | 356 | ||
357 | lock_super(sb); | 357 | mutex_lock(&MSDOS_SB(sb)->s_lock); |
358 | 358 | ||
359 | err = msdos_format_name(dentry->d_name.name, dentry->d_name.len, | 359 | err = msdos_format_name(dentry->d_name.name, dentry->d_name.len, |
360 | msdos_name, &MSDOS_SB(sb)->options); | 360 | msdos_name, &MSDOS_SB(sb)->options); |
@@ -392,14 +392,14 @@ static int msdos_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) | |||
392 | 392 | ||
393 | d_instantiate(dentry, inode); | 393 | d_instantiate(dentry, inode); |
394 | 394 | ||
395 | unlock_super(sb); | 395 | mutex_unlock(&MSDOS_SB(sb)->s_lock); |
396 | fat_flush_inodes(sb, dir, inode); | 396 | fat_flush_inodes(sb, dir, inode); |
397 | return 0; | 397 | return 0; |
398 | 398 | ||
399 | out_free: | 399 | out_free: |
400 | fat_free_clusters(dir, cluster); | 400 | fat_free_clusters(dir, cluster); |
401 | out: | 401 | out: |
402 | unlock_super(sb); | 402 | mutex_unlock(&MSDOS_SB(sb)->s_lock); |
403 | return err; | 403 | return err; |
404 | } | 404 | } |
405 | 405 | ||
@@ -411,7 +411,7 @@ static int msdos_unlink(struct inode *dir, struct dentry *dentry) | |||
411 | struct fat_slot_info sinfo; | 411 | struct fat_slot_info sinfo; |
412 | int err; | 412 | int err; |
413 | 413 | ||
414 | lock_super(sb); | 414 | mutex_lock(&MSDOS_SB(sb)->s_lock); |
415 | err = msdos_find(dir, dentry->d_name.name, dentry->d_name.len, &sinfo); | 415 | err = msdos_find(dir, dentry->d_name.name, dentry->d_name.len, &sinfo); |
416 | if (err) | 416 | if (err) |
417 | goto out; | 417 | goto out; |
@@ -423,7 +423,7 @@ static int msdos_unlink(struct inode *dir, struct dentry *dentry) | |||
423 | inode->i_ctime = CURRENT_TIME_SEC; | 423 | inode->i_ctime = CURRENT_TIME_SEC; |
424 | fat_detach(inode); | 424 | fat_detach(inode); |
425 | out: | 425 | out: |
426 | unlock_super(sb); | 426 | mutex_unlock(&MSDOS_SB(sb)->s_lock); |
427 | if (!err) | 427 | if (!err) |
428 | err = fat_flush_inodes(sb, dir, inode); | 428 | err = fat_flush_inodes(sb, dir, inode); |
429 | 429 | ||
@@ -606,7 +606,7 @@ static int msdos_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
606 | unsigned char old_msdos_name[MSDOS_NAME], new_msdos_name[MSDOS_NAME]; | 606 | unsigned char old_msdos_name[MSDOS_NAME], new_msdos_name[MSDOS_NAME]; |
607 | int err, is_hid; | 607 | int err, is_hid; |
608 | 608 | ||
609 | lock_super(sb); | 609 | mutex_lock(&MSDOS_SB(sb)->s_lock); |
610 | 610 | ||
611 | err = msdos_format_name(old_dentry->d_name.name, | 611 | err = msdos_format_name(old_dentry->d_name.name, |
612 | old_dentry->d_name.len, old_msdos_name, | 612 | old_dentry->d_name.len, old_msdos_name, |
@@ -625,7 +625,7 @@ static int msdos_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
625 | err = do_msdos_rename(old_dir, old_msdos_name, old_dentry, | 625 | err = do_msdos_rename(old_dir, old_msdos_name, old_dentry, |
626 | new_dir, new_msdos_name, new_dentry, is_hid); | 626 | new_dir, new_msdos_name, new_dentry, is_hid); |
627 | out: | 627 | out: |
628 | unlock_super(sb); | 628 | mutex_unlock(&MSDOS_SB(sb)->s_lock); |
629 | if (!err) | 629 | if (!err) |
630 | err = fat_flush_inodes(sb, old_dir, new_dir); | 630 | err = fat_flush_inodes(sb, old_dir, new_dir); |
631 | return err; | 631 | return err; |