diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-01-22 15:40:57 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-01-22 18:04:28 -0500 |
commit | 5955102c9984fa081b2d570cfac75c97eecf8f3b (patch) | |
tree | a4744386eac4b916e847eb4eedfada158f6527b4 /fs/ext4 | |
parent | 57b8f112cfe6622ddddb8c2641206bb5fa8a112d (diff) |
wrappers for ->i_mutex access
parallel to mutex_{lock,unlock,trylock,is_locked,lock_nested},
inode_foo(inode) being mutex_foo(&inode->i_mutex).
Please, use those for access to ->i_mutex; over the coming cycle
->i_mutex will become rwsem, with ->lookup() done with it held
only shared.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/ext4.h | 2 | ||||
-rw-r--r-- | fs/ext4/extents.c | 20 | ||||
-rw-r--r-- | fs/ext4/file.c | 18 | ||||
-rw-r--r-- | fs/ext4/inode.c | 12 | ||||
-rw-r--r-- | fs/ext4/ioctl.c | 20 | ||||
-rw-r--r-- | fs/ext4/namei.c | 4 | ||||
-rw-r--r-- | fs/ext4/super.c | 4 |
7 files changed, 40 insertions, 40 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 1c127213363a..0662b285dc8a 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h | |||
@@ -2896,7 +2896,7 @@ do { \ | |||
2896 | static inline void ext4_update_i_disksize(struct inode *inode, loff_t newsize) | 2896 | static inline void ext4_update_i_disksize(struct inode *inode, loff_t newsize) |
2897 | { | 2897 | { |
2898 | WARN_ON_ONCE(S_ISREG(inode->i_mode) && | 2898 | WARN_ON_ONCE(S_ISREG(inode->i_mode) && |
2899 | !mutex_is_locked(&inode->i_mutex)); | 2899 | !inode_is_locked(inode)); |
2900 | down_write(&EXT4_I(inode)->i_data_sem); | 2900 | down_write(&EXT4_I(inode)->i_data_sem); |
2901 | if (newsize > EXT4_I(inode)->i_disksize) | 2901 | if (newsize > EXT4_I(inode)->i_disksize) |
2902 | EXT4_I(inode)->i_disksize = newsize; | 2902 | EXT4_I(inode)->i_disksize = newsize; |
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index b52fea3b7219..0ffabaf90aa5 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c | |||
@@ -4799,7 +4799,7 @@ static long ext4_zero_range(struct file *file, loff_t offset, | |||
4799 | else | 4799 | else |
4800 | max_blocks -= lblk; | 4800 | max_blocks -= lblk; |
4801 | 4801 | ||
4802 | mutex_lock(&inode->i_mutex); | 4802 | inode_lock(inode); |
4803 | 4803 | ||
4804 | /* | 4804 | /* |
4805 | * Indirect files do not support unwritten extnets | 4805 | * Indirect files do not support unwritten extnets |
@@ -4902,7 +4902,7 @@ static long ext4_zero_range(struct file *file, loff_t offset, | |||
4902 | out_dio: | 4902 | out_dio: |
4903 | ext4_inode_resume_unlocked_dio(inode); | 4903 | ext4_inode_resume_unlocked_dio(inode); |
4904 | out_mutex: | 4904 | out_mutex: |
4905 | mutex_unlock(&inode->i_mutex); | 4905 | inode_unlock(inode); |
4906 | return ret; | 4906 | return ret; |
4907 | } | 4907 | } |
4908 | 4908 | ||
@@ -4973,7 +4973,7 @@ long ext4_fallocate(struct file *file, int mode, loff_t offset, loff_t len) | |||
4973 | if (mode & FALLOC_FL_KEEP_SIZE) | 4973 | if (mode & FALLOC_FL_KEEP_SIZE) |
4974 | flags |= EXT4_GET_BLOCKS_KEEP_SIZE; | 4974 | flags |= EXT4_GET_BLOCKS_KEEP_SIZE; |
4975 | 4975 | ||
4976 | mutex_lock(&inode->i_mutex); | 4976 | inode_lock(inode); |
4977 | 4977 | ||
4978 | /* | 4978 | /* |
4979 | * We only support preallocation for extent-based files only | 4979 | * We only support preallocation for extent-based files only |
@@ -5006,7 +5006,7 @@ long ext4_fallocate(struct file *file, int mode, loff_t offset, loff_t len) | |||
5006 | EXT4_I(inode)->i_sync_tid); | 5006 | EXT4_I(inode)->i_sync_tid); |
5007 | } | 5007 | } |
5008 | out: | 5008 | out: |
5009 | mutex_unlock(&inode->i_mutex); | 5009 | inode_unlock(inode); |
5010 | trace_ext4_fallocate_exit(inode, offset, max_blocks, ret); | 5010 | trace_ext4_fallocate_exit(inode, offset, max_blocks, ret); |
5011 | return ret; | 5011 | return ret; |
5012 | } | 5012 | } |
@@ -5492,7 +5492,7 @@ int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len) | |||
5492 | return ret; | 5492 | return ret; |
5493 | } | 5493 | } |
5494 | 5494 | ||
5495 | mutex_lock(&inode->i_mutex); | 5495 | inode_lock(inode); |
5496 | /* | 5496 | /* |
5497 | * There is no need to overlap collapse range with EOF, in which case | 5497 | * There is no need to overlap collapse range with EOF, in which case |
5498 | * it is effectively a truncate operation | 5498 | * it is effectively a truncate operation |
@@ -5587,7 +5587,7 @@ out_mmap: | |||
5587 | up_write(&EXT4_I(inode)->i_mmap_sem); | 5587 | up_write(&EXT4_I(inode)->i_mmap_sem); |
5588 | ext4_inode_resume_unlocked_dio(inode); | 5588 | ext4_inode_resume_unlocked_dio(inode); |
5589 | out_mutex: | 5589 | out_mutex: |
5590 | mutex_unlock(&inode->i_mutex); | 5590 | inode_unlock(inode); |
5591 | return ret; | 5591 | return ret; |
5592 | } | 5592 | } |
5593 | 5593 | ||
@@ -5638,7 +5638,7 @@ int ext4_insert_range(struct inode *inode, loff_t offset, loff_t len) | |||
5638 | return ret; | 5638 | return ret; |
5639 | } | 5639 | } |
5640 | 5640 | ||
5641 | mutex_lock(&inode->i_mutex); | 5641 | inode_lock(inode); |
5642 | /* Currently just for extent based files */ | 5642 | /* Currently just for extent based files */ |
5643 | if (!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) { | 5643 | if (!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) { |
5644 | ret = -EOPNOTSUPP; | 5644 | ret = -EOPNOTSUPP; |
@@ -5757,7 +5757,7 @@ out_mmap: | |||
5757 | up_write(&EXT4_I(inode)->i_mmap_sem); | 5757 | up_write(&EXT4_I(inode)->i_mmap_sem); |
5758 | ext4_inode_resume_unlocked_dio(inode); | 5758 | ext4_inode_resume_unlocked_dio(inode); |
5759 | out_mutex: | 5759 | out_mutex: |
5760 | mutex_unlock(&inode->i_mutex); | 5760 | inode_unlock(inode); |
5761 | return ret; | 5761 | return ret; |
5762 | } | 5762 | } |
5763 | 5763 | ||
@@ -5792,8 +5792,8 @@ ext4_swap_extents(handle_t *handle, struct inode *inode1, | |||
5792 | 5792 | ||
5793 | BUG_ON(!rwsem_is_locked(&EXT4_I(inode1)->i_data_sem)); | 5793 | BUG_ON(!rwsem_is_locked(&EXT4_I(inode1)->i_data_sem)); |
5794 | BUG_ON(!rwsem_is_locked(&EXT4_I(inode2)->i_data_sem)); | 5794 | BUG_ON(!rwsem_is_locked(&EXT4_I(inode2)->i_data_sem)); |
5795 | BUG_ON(!mutex_is_locked(&inode1->i_mutex)); | 5795 | BUG_ON(!inode_is_locked(inode1)); |
5796 | BUG_ON(!mutex_is_locked(&inode2->i_mutex)); | 5796 | BUG_ON(!inode_is_locked(inode2)); |
5797 | 5797 | ||
5798 | *erp = ext4_es_remove_extent(inode1, lblk1, count); | 5798 | *erp = ext4_es_remove_extent(inode1, lblk1, count); |
5799 | if (unlikely(*erp)) | 5799 | if (unlikely(*erp)) |
diff --git a/fs/ext4/file.c b/fs/ext4/file.c index 749b222e6498..8eb87e3e2752 100644 --- a/fs/ext4/file.c +++ b/fs/ext4/file.c | |||
@@ -113,7 +113,7 @@ ext4_file_write_iter(struct kiocb *iocb, struct iov_iter *from) | |||
113 | ext4_unwritten_wait(inode); | 113 | ext4_unwritten_wait(inode); |
114 | } | 114 | } |
115 | 115 | ||
116 | mutex_lock(&inode->i_mutex); | 116 | inode_lock(inode); |
117 | ret = generic_write_checks(iocb, from); | 117 | ret = generic_write_checks(iocb, from); |
118 | if (ret <= 0) | 118 | if (ret <= 0) |
119 | goto out; | 119 | goto out; |
@@ -169,7 +169,7 @@ ext4_file_write_iter(struct kiocb *iocb, struct iov_iter *from) | |||
169 | } | 169 | } |
170 | 170 | ||
171 | ret = __generic_file_write_iter(iocb, from); | 171 | ret = __generic_file_write_iter(iocb, from); |
172 | mutex_unlock(&inode->i_mutex); | 172 | inode_unlock(inode); |
173 | 173 | ||
174 | if (ret > 0) { | 174 | if (ret > 0) { |
175 | ssize_t err; | 175 | ssize_t err; |
@@ -186,7 +186,7 @@ ext4_file_write_iter(struct kiocb *iocb, struct iov_iter *from) | |||
186 | return ret; | 186 | return ret; |
187 | 187 | ||
188 | out: | 188 | out: |
189 | mutex_unlock(&inode->i_mutex); | 189 | inode_unlock(inode); |
190 | if (aio_mutex) | 190 | if (aio_mutex) |
191 | mutex_unlock(aio_mutex); | 191 | mutex_unlock(aio_mutex); |
192 | return ret; | 192 | return ret; |
@@ -561,11 +561,11 @@ static loff_t ext4_seek_data(struct file *file, loff_t offset, loff_t maxsize) | |||
561 | int blkbits; | 561 | int blkbits; |
562 | int ret = 0; | 562 | int ret = 0; |
563 | 563 | ||
564 | mutex_lock(&inode->i_mutex); | 564 | inode_lock(inode); |
565 | 565 | ||
566 | isize = i_size_read(inode); | 566 | isize = i_size_read(inode); |
567 | if (offset >= isize) { | 567 | if (offset >= isize) { |
568 | mutex_unlock(&inode->i_mutex); | 568 | inode_unlock(inode); |
569 | return -ENXIO; | 569 | return -ENXIO; |
570 | } | 570 | } |
571 | 571 | ||
@@ -613,7 +613,7 @@ static loff_t ext4_seek_data(struct file *file, loff_t offset, loff_t maxsize) | |||
613 | dataoff = (loff_t)last << blkbits; | 613 | dataoff = (loff_t)last << blkbits; |
614 | } while (last <= end); | 614 | } while (last <= end); |
615 | 615 | ||
616 | mutex_unlock(&inode->i_mutex); | 616 | inode_unlock(inode); |
617 | 617 | ||
618 | if (dataoff > isize) | 618 | if (dataoff > isize) |
619 | return -ENXIO; | 619 | return -ENXIO; |
@@ -634,11 +634,11 @@ static loff_t ext4_seek_hole(struct file *file, loff_t offset, loff_t maxsize) | |||
634 | int blkbits; | 634 | int blkbits; |
635 | int ret = 0; | 635 | int ret = 0; |
636 | 636 | ||
637 | mutex_lock(&inode->i_mutex); | 637 | inode_lock(inode); |
638 | 638 | ||
639 | isize = i_size_read(inode); | 639 | isize = i_size_read(inode); |
640 | if (offset >= isize) { | 640 | if (offset >= isize) { |
641 | mutex_unlock(&inode->i_mutex); | 641 | inode_unlock(inode); |
642 | return -ENXIO; | 642 | return -ENXIO; |
643 | } | 643 | } |
644 | 644 | ||
@@ -689,7 +689,7 @@ static loff_t ext4_seek_hole(struct file *file, loff_t offset, loff_t maxsize) | |||
689 | break; | 689 | break; |
690 | } while (last <= end); | 690 | } while (last <= end); |
691 | 691 | ||
692 | mutex_unlock(&inode->i_mutex); | 692 | inode_unlock(inode); |
693 | 693 | ||
694 | if (holeoff > isize) | 694 | if (holeoff > isize) |
695 | holeoff = isize; | 695 | holeoff = isize; |
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index d964195ea0e2..83bc8bfb3bea 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -3231,7 +3231,7 @@ static ssize_t ext4_ext_direct_IO(struct kiocb *iocb, struct iov_iter *iter, | |||
3231 | overwrite = *((int *)iocb->private); | 3231 | overwrite = *((int *)iocb->private); |
3232 | 3232 | ||
3233 | if (overwrite) | 3233 | if (overwrite) |
3234 | mutex_unlock(&inode->i_mutex); | 3234 | inode_unlock(inode); |
3235 | 3235 | ||
3236 | /* | 3236 | /* |
3237 | * We could direct write to holes and fallocate. | 3237 | * We could direct write to holes and fallocate. |
@@ -3331,7 +3331,7 @@ retake_lock: | |||
3331 | inode_dio_end(inode); | 3331 | inode_dio_end(inode); |
3332 | /* take i_mutex locking again if we do a ovewrite dio */ | 3332 | /* take i_mutex locking again if we do a ovewrite dio */ |
3333 | if (overwrite) | 3333 | if (overwrite) |
3334 | mutex_lock(&inode->i_mutex); | 3334 | inode_lock(inode); |
3335 | 3335 | ||
3336 | return ret; | 3336 | return ret; |
3337 | } | 3337 | } |
@@ -3653,7 +3653,7 @@ int ext4_update_disksize_before_punch(struct inode *inode, loff_t offset, | |||
3653 | handle_t *handle; | 3653 | handle_t *handle; |
3654 | loff_t size = i_size_read(inode); | 3654 | loff_t size = i_size_read(inode); |
3655 | 3655 | ||
3656 | WARN_ON(!mutex_is_locked(&inode->i_mutex)); | 3656 | WARN_ON(!inode_is_locked(inode)); |
3657 | if (offset > size || offset + len < size) | 3657 | if (offset > size || offset + len < size) |
3658 | return 0; | 3658 | return 0; |
3659 | 3659 | ||
@@ -3707,7 +3707,7 @@ int ext4_punch_hole(struct inode *inode, loff_t offset, loff_t length) | |||
3707 | return ret; | 3707 | return ret; |
3708 | } | 3708 | } |
3709 | 3709 | ||
3710 | mutex_lock(&inode->i_mutex); | 3710 | inode_lock(inode); |
3711 | 3711 | ||
3712 | /* No need to punch hole beyond i_size */ | 3712 | /* No need to punch hole beyond i_size */ |
3713 | if (offset >= inode->i_size) | 3713 | if (offset >= inode->i_size) |
@@ -3809,7 +3809,7 @@ out_dio: | |||
3809 | up_write(&EXT4_I(inode)->i_mmap_sem); | 3809 | up_write(&EXT4_I(inode)->i_mmap_sem); |
3810 | ext4_inode_resume_unlocked_dio(inode); | 3810 | ext4_inode_resume_unlocked_dio(inode); |
3811 | out_mutex: | 3811 | out_mutex: |
3812 | mutex_unlock(&inode->i_mutex); | 3812 | inode_unlock(inode); |
3813 | return ret; | 3813 | return ret; |
3814 | } | 3814 | } |
3815 | 3815 | ||
@@ -3879,7 +3879,7 @@ void ext4_truncate(struct inode *inode) | |||
3879 | * have i_mutex locked because it's not necessary. | 3879 | * have i_mutex locked because it's not necessary. |
3880 | */ | 3880 | */ |
3881 | if (!(inode->i_state & (I_NEW|I_FREEING))) | 3881 | if (!(inode->i_state & (I_NEW|I_FREEING))) |
3882 | WARN_ON(!mutex_is_locked(&inode->i_mutex)); | 3882 | WARN_ON(!inode_is_locked(inode)); |
3883 | trace_ext4_truncate_enter(inode); | 3883 | trace_ext4_truncate_enter(inode); |
3884 | 3884 | ||
3885 | if (!ext4_can_truncate(inode)) | 3885 | if (!ext4_can_truncate(inode)) |
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index 2b0cb84255eb..0f6c36922c24 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c | |||
@@ -330,7 +330,7 @@ static int ext4_ioctl_setproject(struct file *filp, __u32 projid) | |||
330 | return err; | 330 | return err; |
331 | 331 | ||
332 | err = -EPERM; | 332 | err = -EPERM; |
333 | mutex_lock(&inode->i_mutex); | 333 | inode_lock(inode); |
334 | /* Is it quota file? Do not allow user to mess with it */ | 334 | /* Is it quota file? Do not allow user to mess with it */ |
335 | if (IS_NOQUOTA(inode)) | 335 | if (IS_NOQUOTA(inode)) |
336 | goto out_unlock; | 336 | goto out_unlock; |
@@ -381,7 +381,7 @@ out_dirty: | |||
381 | out_stop: | 381 | out_stop: |
382 | ext4_journal_stop(handle); | 382 | ext4_journal_stop(handle); |
383 | out_unlock: | 383 | out_unlock: |
384 | mutex_unlock(&inode->i_mutex); | 384 | inode_unlock(inode); |
385 | mnt_drop_write_file(filp); | 385 | mnt_drop_write_file(filp); |
386 | return err; | 386 | return err; |
387 | } | 387 | } |
@@ -464,9 +464,9 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
464 | 464 | ||
465 | flags = ext4_mask_flags(inode->i_mode, flags); | 465 | flags = ext4_mask_flags(inode->i_mode, flags); |
466 | 466 | ||
467 | mutex_lock(&inode->i_mutex); | 467 | inode_lock(inode); |
468 | err = ext4_ioctl_setflags(inode, flags); | 468 | err = ext4_ioctl_setflags(inode, flags); |
469 | mutex_unlock(&inode->i_mutex); | 469 | inode_unlock(inode); |
470 | mnt_drop_write_file(filp); | 470 | mnt_drop_write_file(filp); |
471 | return err; | 471 | return err; |
472 | } | 472 | } |
@@ -497,7 +497,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
497 | goto setversion_out; | 497 | goto setversion_out; |
498 | } | 498 | } |
499 | 499 | ||
500 | mutex_lock(&inode->i_mutex); | 500 | inode_lock(inode); |
501 | handle = ext4_journal_start(inode, EXT4_HT_INODE, 1); | 501 | handle = ext4_journal_start(inode, EXT4_HT_INODE, 1); |
502 | if (IS_ERR(handle)) { | 502 | if (IS_ERR(handle)) { |
503 | err = PTR_ERR(handle); | 503 | err = PTR_ERR(handle); |
@@ -512,7 +512,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
512 | ext4_journal_stop(handle); | 512 | ext4_journal_stop(handle); |
513 | 513 | ||
514 | unlock_out: | 514 | unlock_out: |
515 | mutex_unlock(&inode->i_mutex); | 515 | inode_unlock(inode); |
516 | setversion_out: | 516 | setversion_out: |
517 | mnt_drop_write_file(filp); | 517 | mnt_drop_write_file(filp); |
518 | return err; | 518 | return err; |
@@ -658,9 +658,9 @@ group_add_out: | |||
658 | * ext4_ext_swap_inode_data before we switch the | 658 | * ext4_ext_swap_inode_data before we switch the |
659 | * inode format to prevent read. | 659 | * inode format to prevent read. |
660 | */ | 660 | */ |
661 | mutex_lock(&(inode->i_mutex)); | 661 | inode_lock((inode)); |
662 | err = ext4_ext_migrate(inode); | 662 | err = ext4_ext_migrate(inode); |
663 | mutex_unlock(&(inode->i_mutex)); | 663 | inode_unlock((inode)); |
664 | mnt_drop_write_file(filp); | 664 | mnt_drop_write_file(filp); |
665 | return err; | 665 | return err; |
666 | } | 666 | } |
@@ -876,11 +876,11 @@ encryption_policy_out: | |||
876 | flags = ext4_xflags_to_iflags(fa.fsx_xflags); | 876 | flags = ext4_xflags_to_iflags(fa.fsx_xflags); |
877 | flags = ext4_mask_flags(inode->i_mode, flags); | 877 | flags = ext4_mask_flags(inode->i_mode, flags); |
878 | 878 | ||
879 | mutex_lock(&inode->i_mutex); | 879 | inode_lock(inode); |
880 | flags = (ei->i_flags & ~EXT4_FL_XFLAG_VISIBLE) | | 880 | flags = (ei->i_flags & ~EXT4_FL_XFLAG_VISIBLE) | |
881 | (flags & EXT4_FL_XFLAG_VISIBLE); | 881 | (flags & EXT4_FL_XFLAG_VISIBLE); |
882 | err = ext4_ioctl_setflags(inode, flags); | 882 | err = ext4_ioctl_setflags(inode, flags); |
883 | mutex_unlock(&inode->i_mutex); | 883 | inode_unlock(inode); |
884 | mnt_drop_write_file(filp); | 884 | mnt_drop_write_file(filp); |
885 | if (err) | 885 | if (err) |
886 | return err; | 886 | return err; |
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 854f75de4599..06574dd77614 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c | |||
@@ -2753,7 +2753,7 @@ int ext4_orphan_add(handle_t *handle, struct inode *inode) | |||
2753 | return 0; | 2753 | return 0; |
2754 | 2754 | ||
2755 | WARN_ON_ONCE(!(inode->i_state & (I_NEW | I_FREEING)) && | 2755 | WARN_ON_ONCE(!(inode->i_state & (I_NEW | I_FREEING)) && |
2756 | !mutex_is_locked(&inode->i_mutex)); | 2756 | !inode_is_locked(inode)); |
2757 | /* | 2757 | /* |
2758 | * Exit early if inode already is on orphan list. This is a big speedup | 2758 | * Exit early if inode already is on orphan list. This is a big speedup |
2759 | * since we don't have to contend on the global s_orphan_lock. | 2759 | * since we don't have to contend on the global s_orphan_lock. |
@@ -2835,7 +2835,7 @@ int ext4_orphan_del(handle_t *handle, struct inode *inode) | |||
2835 | return 0; | 2835 | return 0; |
2836 | 2836 | ||
2837 | WARN_ON_ONCE(!(inode->i_state & (I_NEW | I_FREEING)) && | 2837 | WARN_ON_ONCE(!(inode->i_state & (I_NEW | I_FREEING)) && |
2838 | !mutex_is_locked(&inode->i_mutex)); | 2838 | !inode_is_locked(inode)); |
2839 | /* Do this quick check before taking global s_orphan_lock. */ | 2839 | /* Do this quick check before taking global s_orphan_lock. */ |
2840 | if (list_empty(&ei->i_orphan)) | 2840 | if (list_empty(&ei->i_orphan)) |
2841 | return 0; | 2841 | return 0; |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 00c98fab6333..3ed01ec011d7 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -2286,10 +2286,10 @@ static void ext4_orphan_cleanup(struct super_block *sb, | |||
2286 | __func__, inode->i_ino, inode->i_size); | 2286 | __func__, inode->i_ino, inode->i_size); |
2287 | jbd_debug(2, "truncating inode %lu to %lld bytes\n", | 2287 | jbd_debug(2, "truncating inode %lu to %lld bytes\n", |
2288 | inode->i_ino, inode->i_size); | 2288 | inode->i_ino, inode->i_size); |
2289 | mutex_lock(&inode->i_mutex); | 2289 | inode_lock(inode); |
2290 | truncate_inode_pages(inode->i_mapping, inode->i_size); | 2290 | truncate_inode_pages(inode->i_mapping, inode->i_size); |
2291 | ext4_truncate(inode); | 2291 | ext4_truncate(inode); |
2292 | mutex_unlock(&inode->i_mutex); | 2292 | inode_unlock(inode); |
2293 | nr_truncates++; | 2293 | nr_truncates++; |
2294 | } else { | 2294 | } else { |
2295 | if (test_opt(sb, DEBUG)) | 2295 | if (test_opt(sb, DEBUG)) |