Commit c039e3134ae62863bbc8e8429b29e3c43cf21b2a
Committed by
Linus Torvalds
1 parent
6f87f0deeb
Exists in
master
and in
20 other branches
[PATCH] sem2mutex: blockdev #2
Semaphore to mutex conversion. The conversion was generated via scripts, and the result was validated automatically via a script as well. Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Jens Axboe <axboe@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Showing 7 changed files with 38 additions and 38 deletions Side-by-side Diff
block/ioctl.c
... | ... | @@ -42,9 +42,9 @@ |
42 | 42 | return -EINVAL; |
43 | 43 | } |
44 | 44 | /* partition number in use? */ |
45 | - down(&bdev->bd_sem); | |
45 | + mutex_lock(&bdev->bd_mutex); | |
46 | 46 | if (disk->part[part - 1]) { |
47 | - up(&bdev->bd_sem); | |
47 | + mutex_unlock(&bdev->bd_mutex); | |
48 | 48 | return -EBUSY; |
49 | 49 | } |
50 | 50 | /* overlap? */ |
51 | 51 | |
... | ... | @@ -55,13 +55,13 @@ |
55 | 55 | continue; |
56 | 56 | if (!(start+length <= s->start_sect || |
57 | 57 | start >= s->start_sect + s->nr_sects)) { |
58 | - up(&bdev->bd_sem); | |
58 | + mutex_unlock(&bdev->bd_mutex); | |
59 | 59 | return -EBUSY; |
60 | 60 | } |
61 | 61 | } |
62 | 62 | /* all seems OK */ |
63 | 63 | add_partition(disk, part, start, length); |
64 | - up(&bdev->bd_sem); | |
64 | + mutex_unlock(&bdev->bd_mutex); | |
65 | 65 | return 0; |
66 | 66 | case BLKPG_DEL_PARTITION: |
67 | 67 | if (!disk->part[part-1]) |
68 | 68 | |
... | ... | @@ -71,9 +71,9 @@ |
71 | 71 | bdevp = bdget_disk(disk, part); |
72 | 72 | if (!bdevp) |
73 | 73 | return -ENOMEM; |
74 | - down(&bdevp->bd_sem); | |
74 | + mutex_lock(&bdevp->bd_mutex); | |
75 | 75 | if (bdevp->bd_openers) { |
76 | - up(&bdevp->bd_sem); | |
76 | + mutex_unlock(&bdevp->bd_mutex); | |
77 | 77 | bdput(bdevp); |
78 | 78 | return -EBUSY; |
79 | 79 | } |
80 | 80 | |
... | ... | @@ -81,10 +81,10 @@ |
81 | 81 | fsync_bdev(bdevp); |
82 | 82 | invalidate_bdev(bdevp, 0); |
83 | 83 | |
84 | - down(&bdev->bd_sem); | |
84 | + mutex_lock(&bdev->bd_mutex); | |
85 | 85 | delete_partition(disk, part); |
86 | - up(&bdev->bd_sem); | |
87 | - up(&bdevp->bd_sem); | |
86 | + mutex_unlock(&bdev->bd_mutex); | |
87 | + mutex_unlock(&bdevp->bd_mutex); | |
88 | 88 | bdput(bdevp); |
89 | 89 | |
90 | 90 | return 0; |
91 | 91 | |
... | ... | @@ -102,10 +102,10 @@ |
102 | 102 | return -EINVAL; |
103 | 103 | if (!capable(CAP_SYS_ADMIN)) |
104 | 104 | return -EACCES; |
105 | - if (down_trylock(&bdev->bd_sem)) | |
105 | + if (!mutex_trylock(&bdev->bd_mutex)) | |
106 | 106 | return -EBUSY; |
107 | 107 | res = rescan_partitions(disk, bdev); |
108 | - up(&bdev->bd_sem); | |
108 | + mutex_unlock(&bdev->bd_mutex); | |
109 | 109 | return res; |
110 | 110 | } |
111 | 111 |
drivers/block/rd.c
... | ... | @@ -310,12 +310,12 @@ |
310 | 310 | * cache |
311 | 311 | */ |
312 | 312 | error = -EBUSY; |
313 | - down(&bdev->bd_sem); | |
313 | + mutex_lock(&bdev->bd_mutex); | |
314 | 314 | if (bdev->bd_openers <= 2) { |
315 | 315 | truncate_inode_pages(bdev->bd_inode->i_mapping, 0); |
316 | 316 | error = 0; |
317 | 317 | } |
318 | - up(&bdev->bd_sem); | |
318 | + mutex_unlock(&bdev->bd_mutex); | |
319 | 319 | return error; |
320 | 320 | } |
321 | 321 |
drivers/s390/block/dasd_ioctl.c
... | ... | @@ -151,9 +151,9 @@ |
151 | 151 | return -ENODEV; |
152 | 152 | dasd_enable_device(device); |
153 | 153 | /* Formatting the dasd device can change the capacity. */ |
154 | - down(&bdev->bd_sem); | |
154 | + mutex_lock(&bdev->bd_mutex); | |
155 | 155 | i_size_write(bdev->bd_inode, (loff_t)get_capacity(device->gdp) << 9); |
156 | - up(&bdev->bd_sem); | |
156 | + mutex_unlock(&bdev->bd_mutex); | |
157 | 157 | return 0; |
158 | 158 | } |
159 | 159 | |
160 | 160 | |
... | ... | @@ -184,9 +184,9 @@ |
184 | 184 | * Set i_size to zero, since read, write, etc. check against this |
185 | 185 | * value. |
186 | 186 | */ |
187 | - down(&bdev->bd_sem); | |
187 | + mutex_lock(&bdev->bd_mutex); | |
188 | 188 | i_size_write(bdev->bd_inode, 0); |
189 | - up(&bdev->bd_sem); | |
189 | + mutex_unlock(&bdev->bd_mutex); | |
190 | 190 | return 0; |
191 | 191 | } |
192 | 192 |
fs/block_dev.c
... | ... | @@ -265,8 +265,8 @@ |
265 | 265 | SLAB_CTOR_CONSTRUCTOR) |
266 | 266 | { |
267 | 267 | memset(bdev, 0, sizeof(*bdev)); |
268 | - sema_init(&bdev->bd_sem, 1); | |
269 | - sema_init(&bdev->bd_mount_sem, 1); | |
268 | + mutex_init(&bdev->bd_mutex); | |
269 | + mutex_init(&bdev->bd_mount_mutex); | |
270 | 270 | INIT_LIST_HEAD(&bdev->bd_inodes); |
271 | 271 | INIT_LIST_HEAD(&bdev->bd_list); |
272 | 272 | inode_init_once(&ei->vfs_inode); |
... | ... | @@ -574,7 +574,7 @@ |
574 | 574 | } |
575 | 575 | owner = disk->fops->owner; |
576 | 576 | |
577 | - down(&bdev->bd_sem); | |
577 | + mutex_lock(&bdev->bd_mutex); | |
578 | 578 | if (!bdev->bd_openers) { |
579 | 579 | bdev->bd_disk = disk; |
580 | 580 | bdev->bd_contains = bdev; |
581 | 581 | |
582 | 582 | |
... | ... | @@ -605,21 +605,21 @@ |
605 | 605 | if (ret) |
606 | 606 | goto out_first; |
607 | 607 | bdev->bd_contains = whole; |
608 | - down(&whole->bd_sem); | |
608 | + mutex_lock(&whole->bd_mutex); | |
609 | 609 | whole->bd_part_count++; |
610 | 610 | p = disk->part[part - 1]; |
611 | 611 | bdev->bd_inode->i_data.backing_dev_info = |
612 | 612 | whole->bd_inode->i_data.backing_dev_info; |
613 | 613 | if (!(disk->flags & GENHD_FL_UP) || !p || !p->nr_sects) { |
614 | 614 | whole->bd_part_count--; |
615 | - up(&whole->bd_sem); | |
615 | + mutex_unlock(&whole->bd_mutex); | |
616 | 616 | ret = -ENXIO; |
617 | 617 | goto out_first; |
618 | 618 | } |
619 | 619 | kobject_get(&p->kobj); |
620 | 620 | bdev->bd_part = p; |
621 | 621 | bd_set_size(bdev, (loff_t) p->nr_sects << 9); |
622 | - up(&whole->bd_sem); | |
622 | + mutex_unlock(&whole->bd_mutex); | |
623 | 623 | } |
624 | 624 | } else { |
625 | 625 | put_disk(disk); |
626 | 626 | |
627 | 627 | |
... | ... | @@ -633,13 +633,13 @@ |
633 | 633 | if (bdev->bd_invalidated) |
634 | 634 | rescan_partitions(bdev->bd_disk, bdev); |
635 | 635 | } else { |
636 | - down(&bdev->bd_contains->bd_sem); | |
636 | + mutex_lock(&bdev->bd_contains->bd_mutex); | |
637 | 637 | bdev->bd_contains->bd_part_count++; |
638 | - up(&bdev->bd_contains->bd_sem); | |
638 | + mutex_unlock(&bdev->bd_contains->bd_mutex); | |
639 | 639 | } |
640 | 640 | } |
641 | 641 | bdev->bd_openers++; |
642 | - up(&bdev->bd_sem); | |
642 | + mutex_unlock(&bdev->bd_mutex); | |
643 | 643 | unlock_kernel(); |
644 | 644 | return 0; |
645 | 645 | |
... | ... | @@ -652,7 +652,7 @@ |
652 | 652 | put_disk(disk); |
653 | 653 | module_put(owner); |
654 | 654 | out: |
655 | - up(&bdev->bd_sem); | |
655 | + mutex_unlock(&bdev->bd_mutex); | |
656 | 656 | unlock_kernel(); |
657 | 657 | if (ret) |
658 | 658 | bdput(bdev); |
... | ... | @@ -714,7 +714,7 @@ |
714 | 714 | struct inode *bd_inode = bdev->bd_inode; |
715 | 715 | struct gendisk *disk = bdev->bd_disk; |
716 | 716 | |
717 | - down(&bdev->bd_sem); | |
717 | + mutex_lock(&bdev->bd_mutex); | |
718 | 718 | lock_kernel(); |
719 | 719 | if (!--bdev->bd_openers) { |
720 | 720 | sync_blockdev(bdev); |
721 | 721 | |
... | ... | @@ -724,9 +724,9 @@ |
724 | 724 | if (disk->fops->release) |
725 | 725 | ret = disk->fops->release(bd_inode, NULL); |
726 | 726 | } else { |
727 | - down(&bdev->bd_contains->bd_sem); | |
727 | + mutex_lock(&bdev->bd_contains->bd_mutex); | |
728 | 728 | bdev->bd_contains->bd_part_count--; |
729 | - up(&bdev->bd_contains->bd_sem); | |
729 | + mutex_unlock(&bdev->bd_contains->bd_mutex); | |
730 | 730 | } |
731 | 731 | if (!bdev->bd_openers) { |
732 | 732 | struct module *owner = disk->fops->owner; |
... | ... | @@ -746,7 +746,7 @@ |
746 | 746 | bdev->bd_contains = NULL; |
747 | 747 | } |
748 | 748 | unlock_kernel(); |
749 | - up(&bdev->bd_sem); | |
749 | + mutex_unlock(&bdev->bd_mutex); | |
750 | 750 | bdput(bdev); |
751 | 751 | return ret; |
752 | 752 | } |
fs/buffer.c
... | ... | @@ -201,7 +201,7 @@ |
201 | 201 | * freeze_bdev -- lock a filesystem and force it into a consistent state |
202 | 202 | * @bdev: blockdevice to lock |
203 | 203 | * |
204 | - * This takes the block device bd_mount_sem to make sure no new mounts | |
204 | + * This takes the block device bd_mount_mutex to make sure no new mounts | |
205 | 205 | * happen on bdev until thaw_bdev() is called. |
206 | 206 | * If a superblock is found on this device, we take the s_umount semaphore |
207 | 207 | * on it to make sure nobody unmounts until the snapshot creation is done. |
... | ... | @@ -210,7 +210,7 @@ |
210 | 210 | { |
211 | 211 | struct super_block *sb; |
212 | 212 | |
213 | - down(&bdev->bd_mount_sem); | |
213 | + mutex_lock(&bdev->bd_mount_mutex); | |
214 | 214 | sb = get_super(bdev); |
215 | 215 | if (sb && !(sb->s_flags & MS_RDONLY)) { |
216 | 216 | sb->s_frozen = SB_FREEZE_WRITE; |
... | ... | @@ -264,7 +264,7 @@ |
264 | 264 | drop_super(sb); |
265 | 265 | } |
266 | 266 | |
267 | - up(&bdev->bd_mount_sem); | |
267 | + mutex_unlock(&bdev->bd_mount_mutex); | |
268 | 268 | } |
269 | 269 | EXPORT_SYMBOL(thaw_bdev); |
270 | 270 |
fs/super.c
... | ... | @@ -693,9 +693,9 @@ |
693 | 693 | * will protect the lockfs code from trying to start a snapshot |
694 | 694 | * while we are mounting |
695 | 695 | */ |
696 | - down(&bdev->bd_mount_sem); | |
696 | + mutex_lock(&bdev->bd_mount_mutex); | |
697 | 697 | s = sget(fs_type, test_bdev_super, set_bdev_super, bdev); |
698 | - up(&bdev->bd_mount_sem); | |
698 | + mutex_unlock(&bdev->bd_mount_mutex); | |
699 | 699 | if (IS_ERR(s)) |
700 | 700 | goto out; |
701 | 701 |
include/linux/fs.h
... | ... | @@ -397,8 +397,8 @@ |
397 | 397 | dev_t bd_dev; /* not a kdev_t - it's a search key */ |
398 | 398 | struct inode * bd_inode; /* will die */ |
399 | 399 | int bd_openers; |
400 | - struct semaphore bd_sem; /* open/close mutex */ | |
401 | - struct semaphore bd_mount_sem; /* mount mutex */ | |
400 | + struct mutex bd_mutex; /* open/close mutex */ | |
401 | + struct mutex bd_mount_mutex; /* mount mutex */ | |
402 | 402 | struct list_head bd_inodes; |
403 | 403 | void * bd_holder; |
404 | 404 | int bd_holders; |