diff options
Diffstat (limited to 'fs/hpfs/namei.c')
| -rw-r--r-- | fs/hpfs/namei.c | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/fs/hpfs/namei.c b/fs/hpfs/namei.c index 8ff8fc433fc1..a03abb12c610 100644 --- a/fs/hpfs/namei.c +++ b/fs/hpfs/namei.c | |||
| @@ -60,7 +60,7 @@ static int hpfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
| 60 | if (dee.read_only) | 60 | if (dee.read_only) |
| 61 | result->i_mode &= ~0222; | 61 | result->i_mode &= ~0222; |
| 62 | 62 | ||
| 63 | down(&hpfs_i(dir)->i_sem); | 63 | mutex_lock(&hpfs_i(dir)->i_mutex); |
| 64 | r = hpfs_add_dirent(dir, (char *)name, len, &dee, 0); | 64 | r = hpfs_add_dirent(dir, (char *)name, len, &dee, 0); |
| 65 | if (r == 1) | 65 | if (r == 1) |
| 66 | goto bail3; | 66 | goto bail3; |
| @@ -101,11 +101,11 @@ static int hpfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
| 101 | hpfs_write_inode_nolock(result); | 101 | hpfs_write_inode_nolock(result); |
| 102 | } | 102 | } |
| 103 | d_instantiate(dentry, result); | 103 | d_instantiate(dentry, result); |
| 104 | up(&hpfs_i(dir)->i_sem); | 104 | mutex_unlock(&hpfs_i(dir)->i_mutex); |
| 105 | unlock_kernel(); | 105 | unlock_kernel(); |
| 106 | return 0; | 106 | return 0; |
| 107 | bail3: | 107 | bail3: |
| 108 | up(&hpfs_i(dir)->i_sem); | 108 | mutex_unlock(&hpfs_i(dir)->i_mutex); |
| 109 | iput(result); | 109 | iput(result); |
| 110 | bail2: | 110 | bail2: |
| 111 | hpfs_brelse4(&qbh0); | 111 | hpfs_brelse4(&qbh0); |
| @@ -168,7 +168,7 @@ static int hpfs_create(struct inode *dir, struct dentry *dentry, int mode, struc | |||
| 168 | result->i_data.a_ops = &hpfs_aops; | 168 | result->i_data.a_ops = &hpfs_aops; |
| 169 | hpfs_i(result)->mmu_private = 0; | 169 | hpfs_i(result)->mmu_private = 0; |
| 170 | 170 | ||
| 171 | down(&hpfs_i(dir)->i_sem); | 171 | mutex_lock(&hpfs_i(dir)->i_mutex); |
| 172 | r = hpfs_add_dirent(dir, (char *)name, len, &dee, 0); | 172 | r = hpfs_add_dirent(dir, (char *)name, len, &dee, 0); |
| 173 | if (r == 1) | 173 | if (r == 1) |
| 174 | goto bail2; | 174 | goto bail2; |
| @@ -193,12 +193,12 @@ static int hpfs_create(struct inode *dir, struct dentry *dentry, int mode, struc | |||
| 193 | hpfs_write_inode_nolock(result); | 193 | hpfs_write_inode_nolock(result); |
| 194 | } | 194 | } |
| 195 | d_instantiate(dentry, result); | 195 | d_instantiate(dentry, result); |
| 196 | up(&hpfs_i(dir)->i_sem); | 196 | mutex_unlock(&hpfs_i(dir)->i_mutex); |
| 197 | unlock_kernel(); | 197 | unlock_kernel(); |
| 198 | return 0; | 198 | return 0; |
| 199 | 199 | ||
| 200 | bail2: | 200 | bail2: |
| 201 | up(&hpfs_i(dir)->i_sem); | 201 | mutex_unlock(&hpfs_i(dir)->i_mutex); |
| 202 | iput(result); | 202 | iput(result); |
| 203 | bail1: | 203 | bail1: |
| 204 | brelse(bh); | 204 | brelse(bh); |
| @@ -254,7 +254,7 @@ static int hpfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t | |||
| 254 | result->i_blocks = 1; | 254 | result->i_blocks = 1; |
| 255 | init_special_inode(result, mode, rdev); | 255 | init_special_inode(result, mode, rdev); |
| 256 | 256 | ||
| 257 | down(&hpfs_i(dir)->i_sem); | 257 | mutex_lock(&hpfs_i(dir)->i_mutex); |
| 258 | r = hpfs_add_dirent(dir, (char *)name, len, &dee, 0); | 258 | r = hpfs_add_dirent(dir, (char *)name, len, &dee, 0); |
| 259 | if (r == 1) | 259 | if (r == 1) |
| 260 | goto bail2; | 260 | goto bail2; |
| @@ -271,12 +271,12 @@ static int hpfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t | |||
| 271 | 271 | ||
| 272 | hpfs_write_inode_nolock(result); | 272 | hpfs_write_inode_nolock(result); |
| 273 | d_instantiate(dentry, result); | 273 | d_instantiate(dentry, result); |
| 274 | up(&hpfs_i(dir)->i_sem); | 274 | mutex_unlock(&hpfs_i(dir)->i_mutex); |
| 275 | brelse(bh); | 275 | brelse(bh); |
| 276 | unlock_kernel(); | 276 | unlock_kernel(); |
| 277 | return 0; | 277 | return 0; |
| 278 | bail2: | 278 | bail2: |
| 279 | up(&hpfs_i(dir)->i_sem); | 279 | mutex_unlock(&hpfs_i(dir)->i_mutex); |
| 280 | iput(result); | 280 | iput(result); |
| 281 | bail1: | 281 | bail1: |
| 282 | brelse(bh); | 282 | brelse(bh); |
| @@ -333,7 +333,7 @@ static int hpfs_symlink(struct inode *dir, struct dentry *dentry, const char *sy | |||
| 333 | result->i_op = &page_symlink_inode_operations; | 333 | result->i_op = &page_symlink_inode_operations; |
| 334 | result->i_data.a_ops = &hpfs_symlink_aops; | 334 | result->i_data.a_ops = &hpfs_symlink_aops; |
| 335 | 335 | ||
| 336 | down(&hpfs_i(dir)->i_sem); | 336 | mutex_lock(&hpfs_i(dir)->i_mutex); |
| 337 | r = hpfs_add_dirent(dir, (char *)name, len, &dee, 0); | 337 | r = hpfs_add_dirent(dir, (char *)name, len, &dee, 0); |
| 338 | if (r == 1) | 338 | if (r == 1) |
| 339 | goto bail2; | 339 | goto bail2; |
| @@ -352,11 +352,11 @@ static int hpfs_symlink(struct inode *dir, struct dentry *dentry, const char *sy | |||
| 352 | 352 | ||
| 353 | hpfs_write_inode_nolock(result); | 353 | hpfs_write_inode_nolock(result); |
| 354 | d_instantiate(dentry, result); | 354 | d_instantiate(dentry, result); |
| 355 | up(&hpfs_i(dir)->i_sem); | 355 | mutex_unlock(&hpfs_i(dir)->i_mutex); |
| 356 | unlock_kernel(); | 356 | unlock_kernel(); |
| 357 | return 0; | 357 | return 0; |
| 358 | bail2: | 358 | bail2: |
| 359 | up(&hpfs_i(dir)->i_sem); | 359 | mutex_unlock(&hpfs_i(dir)->i_mutex); |
| 360 | iput(result); | 360 | iput(result); |
| 361 | bail1: | 361 | bail1: |
| 362 | brelse(bh); | 362 | brelse(bh); |
| @@ -382,8 +382,8 @@ static int hpfs_unlink(struct inode *dir, struct dentry *dentry) | |||
| 382 | lock_kernel(); | 382 | lock_kernel(); |
| 383 | hpfs_adjust_length((char *)name, &len); | 383 | hpfs_adjust_length((char *)name, &len); |
| 384 | again: | 384 | again: |
| 385 | down(&hpfs_i(inode)->i_parent); | 385 | mutex_lock(&hpfs_i(inode)->i_parent_mutex); |
| 386 | down(&hpfs_i(dir)->i_sem); | 386 | mutex_lock(&hpfs_i(dir)->i_mutex); |
| 387 | err = -ENOENT; | 387 | err = -ENOENT; |
| 388 | de = map_dirent(dir, hpfs_i(dir)->i_dno, (char *)name, len, &dno, &qbh); | 388 | de = map_dirent(dir, hpfs_i(dir)->i_dno, (char *)name, len, &dno, &qbh); |
| 389 | if (!de) | 389 | if (!de) |
| @@ -410,8 +410,8 @@ again: | |||
| 410 | if (rep++) | 410 | if (rep++) |
| 411 | break; | 411 | break; |
| 412 | 412 | ||
| 413 | up(&hpfs_i(dir)->i_sem); | 413 | mutex_unlock(&hpfs_i(dir)->i_mutex); |
| 414 | up(&hpfs_i(inode)->i_parent); | 414 | mutex_unlock(&hpfs_i(inode)->i_parent_mutex); |
| 415 | d_drop(dentry); | 415 | d_drop(dentry); |
| 416 | spin_lock(&dentry->d_lock); | 416 | spin_lock(&dentry->d_lock); |
| 417 | if (atomic_read(&dentry->d_count) > 1 || | 417 | if (atomic_read(&dentry->d_count) > 1 || |
| @@ -442,8 +442,8 @@ again: | |||
| 442 | out1: | 442 | out1: |
| 443 | hpfs_brelse4(&qbh); | 443 | hpfs_brelse4(&qbh); |
| 444 | out: | 444 | out: |
| 445 | up(&hpfs_i(dir)->i_sem); | 445 | mutex_unlock(&hpfs_i(dir)->i_mutex); |
| 446 | up(&hpfs_i(inode)->i_parent); | 446 | mutex_unlock(&hpfs_i(inode)->i_parent_mutex); |
| 447 | unlock_kernel(); | 447 | unlock_kernel(); |
| 448 | return err; | 448 | return err; |
| 449 | } | 449 | } |
| @@ -463,8 +463,8 @@ static int hpfs_rmdir(struct inode *dir, struct dentry *dentry) | |||
| 463 | 463 | ||
| 464 | hpfs_adjust_length((char *)name, &len); | 464 | hpfs_adjust_length((char *)name, &len); |
| 465 | lock_kernel(); | 465 | lock_kernel(); |
| 466 | down(&hpfs_i(inode)->i_parent); | 466 | mutex_lock(&hpfs_i(inode)->i_parent_mutex); |
| 467 | down(&hpfs_i(dir)->i_sem); | 467 | mutex_lock(&hpfs_i(dir)->i_mutex); |
| 468 | err = -ENOENT; | 468 | err = -ENOENT; |
| 469 | de = map_dirent(dir, hpfs_i(dir)->i_dno, (char *)name, len, &dno, &qbh); | 469 | de = map_dirent(dir, hpfs_i(dir)->i_dno, (char *)name, len, &dno, &qbh); |
| 470 | if (!de) | 470 | if (!de) |
| @@ -502,8 +502,8 @@ static int hpfs_rmdir(struct inode *dir, struct dentry *dentry) | |||
| 502 | out1: | 502 | out1: |
| 503 | hpfs_brelse4(&qbh); | 503 | hpfs_brelse4(&qbh); |
| 504 | out: | 504 | out: |
| 505 | up(&hpfs_i(dir)->i_sem); | 505 | mutex_unlock(&hpfs_i(dir)->i_mutex); |
| 506 | up(&hpfs_i(inode)->i_parent); | 506 | mutex_unlock(&hpfs_i(inode)->i_parent_mutex); |
| 507 | unlock_kernel(); | 507 | unlock_kernel(); |
| 508 | return err; | 508 | return err; |
| 509 | } | 509 | } |
| @@ -565,12 +565,12 @@ static int hpfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
| 565 | 565 | ||
| 566 | lock_kernel(); | 566 | lock_kernel(); |
| 567 | /* order doesn't matter, due to VFS exclusion */ | 567 | /* order doesn't matter, due to VFS exclusion */ |
| 568 | down(&hpfs_i(i)->i_parent); | 568 | mutex_lock(&hpfs_i(i)->i_parent_mutex); |
| 569 | if (new_inode) | 569 | if (new_inode) |
| 570 | down(&hpfs_i(new_inode)->i_parent); | 570 | mutex_lock(&hpfs_i(new_inode)->i_parent_mutex); |
| 571 | down(&hpfs_i(old_dir)->i_sem); | 571 | mutex_lock(&hpfs_i(old_dir)->i_mutex); |
| 572 | if (new_dir != old_dir) | 572 | if (new_dir != old_dir) |
| 573 | down(&hpfs_i(new_dir)->i_sem); | 573 | mutex_lock(&hpfs_i(new_dir)->i_mutex); |
| 574 | 574 | ||
| 575 | /* Erm? Moving over the empty non-busy directory is perfectly legal */ | 575 | /* Erm? Moving over the empty non-busy directory is perfectly legal */ |
| 576 | if (new_inode && S_ISDIR(new_inode->i_mode)) { | 576 | if (new_inode && S_ISDIR(new_inode->i_mode)) { |
| @@ -650,11 +650,11 @@ static int hpfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
| 650 | hpfs_decide_conv(i, (char *)new_name, new_len); | 650 | hpfs_decide_conv(i, (char *)new_name, new_len); |
| 651 | end1: | 651 | end1: |
| 652 | if (old_dir != new_dir) | 652 | if (old_dir != new_dir) |
| 653 | up(&hpfs_i(new_dir)->i_sem); | 653 | mutex_unlock(&hpfs_i(new_dir)->i_mutex); |
| 654 | up(&hpfs_i(old_dir)->i_sem); | 654 | mutex_unlock(&hpfs_i(old_dir)->i_mutex); |
| 655 | up(&hpfs_i(i)->i_parent); | 655 | mutex_unlock(&hpfs_i(i)->i_parent_mutex); |
| 656 | if (new_inode) | 656 | if (new_inode) |
| 657 | up(&hpfs_i(new_inode)->i_parent); | 657 | mutex_unlock(&hpfs_i(new_inode)->i_parent_mutex); |
| 658 | unlock_kernel(); | 658 | unlock_kernel(); |
| 659 | return err; | 659 | return err; |
| 660 | } | 660 | } |
