diff options
Diffstat (limited to 'include/linux')
29 files changed, 117 insertions, 77 deletions
diff --git a/include/linux/cache.h b/include/linux/cache.h index d22e632f41fb..cc4b3aafad9a 100644 --- a/include/linux/cache.h +++ b/include/linux/cache.h | |||
@@ -13,9 +13,7 @@ | |||
13 | #define SMP_CACHE_BYTES L1_CACHE_BYTES | 13 | #define SMP_CACHE_BYTES L1_CACHE_BYTES |
14 | #endif | 14 | #endif |
15 | 15 | ||
16 | #if defined(CONFIG_X86) || defined(CONFIG_SPARC64) || defined(CONFIG_IA64) || defined(CONFIG_PARISC) | 16 | #ifndef __read_mostly |
17 | #define __read_mostly __attribute__((__section__(".data.read_mostly"))) | ||
18 | #else | ||
19 | #define __read_mostly | 17 | #define __read_mostly |
20 | #endif | 18 | #endif |
21 | 19 | ||
diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h index b68fdf1f3156..3c9b0bc05123 100644 --- a/include/linux/cdrom.h +++ b/include/linux/cdrom.h | |||
@@ -378,7 +378,6 @@ struct cdrom_generic_command | |||
378 | #define CDC_MEDIA_CHANGED 0x80 /* media changed */ | 378 | #define CDC_MEDIA_CHANGED 0x80 /* media changed */ |
379 | #define CDC_PLAY_AUDIO 0x100 /* audio functions */ | 379 | #define CDC_PLAY_AUDIO 0x100 /* audio functions */ |
380 | #define CDC_RESET 0x200 /* hard reset device */ | 380 | #define CDC_RESET 0x200 /* hard reset device */ |
381 | #define CDC_IOCTLS 0x400 /* driver has non-standard ioctls */ | ||
382 | #define CDC_DRIVE_STATUS 0x800 /* driver implements drive status */ | 381 | #define CDC_DRIVE_STATUS 0x800 /* driver implements drive status */ |
383 | #define CDC_GENERIC_PACKET 0x1000 /* driver implements generic packets */ | 382 | #define CDC_GENERIC_PACKET 0x1000 /* driver implements generic packets */ |
384 | #define CDC_CD_R 0x2000 /* drive is a CD-R */ | 383 | #define CDC_CD_R 0x2000 /* drive is a CD-R */ |
@@ -974,9 +973,7 @@ struct cdrom_device_ops { | |||
974 | int (*reset) (struct cdrom_device_info *); | 973 | int (*reset) (struct cdrom_device_info *); |
975 | /* play stuff */ | 974 | /* play stuff */ |
976 | int (*audio_ioctl) (struct cdrom_device_info *,unsigned int, void *); | 975 | int (*audio_ioctl) (struct cdrom_device_info *,unsigned int, void *); |
977 | /* dev-specific */ | 976 | |
978 | int (*dev_ioctl) (struct cdrom_device_info *, | ||
979 | unsigned int, unsigned long); | ||
980 | /* driver specifications */ | 977 | /* driver specifications */ |
981 | const int capability; /* capability flags */ | 978 | const int capability; /* capability flags */ |
982 | int n_minors; /* number of active minor devices */ | 979 | int n_minors; /* number of active minor devices */ |
diff --git a/include/linux/eventpoll.h b/include/linux/eventpoll.h index 1289f0ec4c00..1e4bdfcf83a2 100644 --- a/include/linux/eventpoll.h +++ b/include/linux/eventpoll.h | |||
@@ -52,7 +52,12 @@ struct file; | |||
52 | #ifdef CONFIG_EPOLL | 52 | #ifdef CONFIG_EPOLL |
53 | 53 | ||
54 | /* Used to initialize the epoll bits inside the "struct file" */ | 54 | /* Used to initialize the epoll bits inside the "struct file" */ |
55 | void eventpoll_init_file(struct file *file); | 55 | static inline void eventpoll_init_file(struct file *file) |
56 | { | ||
57 | INIT_LIST_HEAD(&file->f_ep_links); | ||
58 | spin_lock_init(&file->f_ep_lock); | ||
59 | } | ||
60 | |||
56 | 61 | ||
57 | /* Used to release the epoll bits inside the "struct file" */ | 62 | /* Used to release the epoll bits inside the "struct file" */ |
58 | void eventpoll_release_file(struct file *file); | 63 | void eventpoll_release_file(struct file *file); |
@@ -85,7 +90,6 @@ static inline void eventpoll_release(struct file *file) | |||
85 | eventpoll_release_file(file); | 90 | eventpoll_release_file(file); |
86 | } | 91 | } |
87 | 92 | ||
88 | |||
89 | #else | 93 | #else |
90 | 94 | ||
91 | static inline void eventpoll_init_file(struct file *file) {} | 95 | static inline void eventpoll_init_file(struct file *file) {} |
diff --git a/include/linux/ext3_fs.h b/include/linux/ext3_fs.h index c0272d73ab20..e7239f2f97a1 100644 --- a/include/linux/ext3_fs.h +++ b/include/linux/ext3_fs.h | |||
@@ -772,9 +772,12 @@ extern unsigned long ext3_count_free (struct buffer_head *, unsigned); | |||
772 | 772 | ||
773 | 773 | ||
774 | /* inode.c */ | 774 | /* inode.c */ |
775 | extern int ext3_forget(handle_t *, int, struct inode *, struct buffer_head *, int); | 775 | int ext3_forget(handle_t *, int, struct inode *, struct buffer_head *, int); |
776 | extern struct buffer_head * ext3_getblk (handle_t *, struct inode *, long, int, int *); | 776 | struct buffer_head * ext3_getblk (handle_t *, struct inode *, long, int, int *); |
777 | extern struct buffer_head * ext3_bread (handle_t *, struct inode *, int, int, int *); | 777 | struct buffer_head * ext3_bread (handle_t *, struct inode *, int, int, int *); |
778 | int ext3_get_block_handle(handle_t *handle, struct inode *inode, | ||
779 | sector_t iblock, struct buffer_head *bh_result, int create, | ||
780 | int extend_disksize); | ||
778 | 781 | ||
779 | extern void ext3_read_inode (struct inode *); | 782 | extern void ext3_read_inode (struct inode *); |
780 | extern int ext3_write_inode (struct inode *, int); | 783 | extern int ext3_write_inode (struct inode *, int); |
diff --git a/include/linux/ext3_fs_i.h b/include/linux/ext3_fs_i.h index e71dd98dbcae..7abf90147180 100644 --- a/include/linux/ext3_fs_i.h +++ b/include/linux/ext3_fs_i.h | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/rwsem.h> | 19 | #include <linux/rwsem.h> |
20 | #include <linux/rbtree.h> | 20 | #include <linux/rbtree.h> |
21 | #include <linux/seqlock.h> | 21 | #include <linux/seqlock.h> |
22 | #include <linux/mutex.h> | ||
22 | 23 | ||
23 | struct ext3_reserve_window { | 24 | struct ext3_reserve_window { |
24 | __u32 _rsv_start; /* First byte reserved */ | 25 | __u32 _rsv_start; /* First byte reserved */ |
@@ -122,16 +123,16 @@ struct ext3_inode_info { | |||
122 | __u16 i_extra_isize; | 123 | __u16 i_extra_isize; |
123 | 124 | ||
124 | /* | 125 | /* |
125 | * truncate_sem is for serialising ext3_truncate() against | 126 | * truncate_mutex is for serialising ext3_truncate() against |
126 | * ext3_getblock(). In the 2.4 ext2 design, great chunks of inode's | 127 | * ext3_getblock(). In the 2.4 ext2 design, great chunks of inode's |
127 | * data tree are chopped off during truncate. We can't do that in | 128 | * data tree are chopped off during truncate. We can't do that in |
128 | * ext3 because whenever we perform intermediate commits during | 129 | * ext3 because whenever we perform intermediate commits during |
129 | * truncate, the inode and all the metadata blocks *must* be in a | 130 | * truncate, the inode and all the metadata blocks *must* be in a |
130 | * consistent state which allows truncation of the orphans to restart | 131 | * consistent state which allows truncation of the orphans to restart |
131 | * during recovery. Hence we must fix the get_block-vs-truncate race | 132 | * during recovery. Hence we must fix the get_block-vs-truncate race |
132 | * by other means, so we have truncate_sem. | 133 | * by other means, so we have truncate_mutex. |
133 | */ | 134 | */ |
134 | struct semaphore truncate_sem; | 135 | struct mutex truncate_mutex; |
135 | struct inode vfs_inode; | 136 | struct inode vfs_inode; |
136 | }; | 137 | }; |
137 | 138 | ||
diff --git a/include/linux/file.h b/include/linux/file.h index 9901b850f2e4..9f7c2513866f 100644 --- a/include/linux/file.h +++ b/include/linux/file.h | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/compiler.h> | 10 | #include <linux/compiler.h> |
11 | #include <linux/spinlock.h> | 11 | #include <linux/spinlock.h> |
12 | #include <linux/rcupdate.h> | 12 | #include <linux/rcupdate.h> |
13 | #include <linux/types.h> | ||
13 | 14 | ||
14 | /* | 15 | /* |
15 | * The default fd array needs to be at least BITS_PER_LONG, | 16 | * The default fd array needs to be at least BITS_PER_LONG, |
@@ -17,10 +18,22 @@ | |||
17 | */ | 18 | */ |
18 | #define NR_OPEN_DEFAULT BITS_PER_LONG | 19 | #define NR_OPEN_DEFAULT BITS_PER_LONG |
19 | 20 | ||
21 | /* | ||
22 | * The embedded_fd_set is a small fd_set, | ||
23 | * suitable for most tasks (which open <= BITS_PER_LONG files) | ||
24 | */ | ||
25 | struct embedded_fd_set { | ||
26 | unsigned long fds_bits[1]; | ||
27 | }; | ||
28 | |||
29 | /* | ||
30 | * More than this number of fds: we use a separately allocated fd_set | ||
31 | */ | ||
32 | #define EMBEDDED_FD_SET_SIZE (BITS_PER_BYTE * sizeof(struct embedded_fd_set)) | ||
33 | |||
20 | struct fdtable { | 34 | struct fdtable { |
21 | unsigned int max_fds; | 35 | unsigned int max_fds; |
22 | int max_fdset; | 36 | int max_fdset; |
23 | int next_fd; | ||
24 | struct file ** fd; /* current fd array */ | 37 | struct file ** fd; /* current fd array */ |
25 | fd_set *close_on_exec; | 38 | fd_set *close_on_exec; |
26 | fd_set *open_fds; | 39 | fd_set *open_fds; |
@@ -33,13 +46,20 @@ struct fdtable { | |||
33 | * Open file table structure | 46 | * Open file table structure |
34 | */ | 47 | */ |
35 | struct files_struct { | 48 | struct files_struct { |
49 | /* | ||
50 | * read mostly part | ||
51 | */ | ||
36 | atomic_t count; | 52 | atomic_t count; |
37 | struct fdtable *fdt; | 53 | struct fdtable *fdt; |
38 | struct fdtable fdtab; | 54 | struct fdtable fdtab; |
39 | fd_set close_on_exec_init; | 55 | /* |
40 | fd_set open_fds_init; | 56 | * written part on a separate cache line in SMP |
57 | */ | ||
58 | spinlock_t file_lock ____cacheline_aligned_in_smp; | ||
59 | int next_fd; | ||
60 | struct embedded_fd_set close_on_exec_init; | ||
61 | struct embedded_fd_set open_fds_init; | ||
41 | struct file * fd_array[NR_OPEN_DEFAULT]; | 62 | struct file * fd_array[NR_OPEN_DEFAULT]; |
42 | spinlock_t file_lock; /* Protects concurrent writers. Nests inside tsk->alloc_lock */ | ||
43 | }; | 63 | }; |
44 | 64 | ||
45 | #define files_fdtable(files) (rcu_dereference((files)->fdt)) | 65 | #define files_fdtable(files) (rcu_dereference((files)->fdt)) |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 128d0082522c..f9c9dea636d0 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -397,8 +397,8 @@ struct block_device { | |||
397 | dev_t bd_dev; /* not a kdev_t - it's a search key */ | 397 | dev_t bd_dev; /* not a kdev_t - it's a search key */ |
398 | struct inode * bd_inode; /* will die */ | 398 | struct inode * bd_inode; /* will die */ |
399 | int bd_openers; | 399 | int bd_openers; |
400 | struct semaphore bd_sem; /* open/close mutex */ | 400 | struct mutex bd_mutex; /* open/close mutex */ |
401 | struct semaphore bd_mount_sem; /* mount mutex */ | 401 | struct mutex bd_mount_mutex; /* mount mutex */ |
402 | struct list_head bd_inodes; | 402 | struct list_head bd_inodes; |
403 | void * bd_holder; | 403 | void * bd_holder; |
404 | int bd_holders; | 404 | int bd_holders; |
@@ -509,7 +509,7 @@ struct inode { | |||
509 | 509 | ||
510 | #ifdef CONFIG_INOTIFY | 510 | #ifdef CONFIG_INOTIFY |
511 | struct list_head inotify_watches; /* watches on this inode */ | 511 | struct list_head inotify_watches; /* watches on this inode */ |
512 | struct semaphore inotify_sem; /* protects the watches list */ | 512 | struct mutex inotify_mutex; /* protects the watches list */ |
513 | #endif | 513 | #endif |
514 | 514 | ||
515 | unsigned long i_state; | 515 | unsigned long i_state; |
@@ -847,7 +847,7 @@ struct super_block { | |||
847 | * The next field is for VFS *only*. No filesystems have any business | 847 | * The next field is for VFS *only*. No filesystems have any business |
848 | * even looking at it. You had been warned. | 848 | * even looking at it. You had been warned. |
849 | */ | 849 | */ |
850 | struct semaphore s_vfs_rename_sem; /* Kludge */ | 850 | struct mutex s_vfs_rename_mutex; /* Kludge */ |
851 | 851 | ||
852 | /* Granuality of c/m/atime in ns. | 852 | /* Granuality of c/m/atime in ns. |
853 | Cannot be worse than a second */ | 853 | Cannot be worse than a second */ |
@@ -1115,6 +1115,18 @@ static inline void mark_inode_dirty_sync(struct inode *inode) | |||
1115 | __mark_inode_dirty(inode, I_DIRTY_SYNC); | 1115 | __mark_inode_dirty(inode, I_DIRTY_SYNC); |
1116 | } | 1116 | } |
1117 | 1117 | ||
1118 | static inline void inode_inc_link_count(struct inode *inode) | ||
1119 | { | ||
1120 | inode->i_nlink++; | ||
1121 | mark_inode_dirty(inode); | ||
1122 | } | ||
1123 | |||
1124 | static inline void inode_dec_link_count(struct inode *inode) | ||
1125 | { | ||
1126 | inode->i_nlink--; | ||
1127 | mark_inode_dirty(inode); | ||
1128 | } | ||
1129 | |||
1118 | extern void touch_atime(struct vfsmount *mnt, struct dentry *dentry); | 1130 | extern void touch_atime(struct vfsmount *mnt, struct dentry *dentry); |
1119 | static inline void file_accessed(struct file *file) | 1131 | static inline void file_accessed(struct file *file) |
1120 | { | 1132 | { |
@@ -1534,7 +1546,7 @@ extern void destroy_inode(struct inode *); | |||
1534 | extern struct inode *new_inode(struct super_block *); | 1546 | extern struct inode *new_inode(struct super_block *); |
1535 | extern int remove_suid(struct dentry *); | 1547 | extern int remove_suid(struct dentry *); |
1536 | extern void remove_dquot_ref(struct super_block *, int, struct list_head *); | 1548 | extern void remove_dquot_ref(struct super_block *, int, struct list_head *); |
1537 | extern struct semaphore iprune_sem; | 1549 | extern struct mutex iprune_mutex; |
1538 | 1550 | ||
1539 | extern void __insert_inode_hash(struct inode *, unsigned long hashval); | 1551 | extern void __insert_inode_hash(struct inode *, unsigned long hashval); |
1540 | extern void remove_inode_hash(struct inode *); | 1552 | extern void remove_inode_hash(struct inode *); |
diff --git a/include/linux/generic_serial.h b/include/linux/generic_serial.h index 0abe9d9a0069..652611a4bdcd 100644 --- a/include/linux/generic_serial.h +++ b/include/linux/generic_serial.h | |||
@@ -12,6 +12,8 @@ | |||
12 | #ifndef GENERIC_SERIAL_H | 12 | #ifndef GENERIC_SERIAL_H |
13 | #define GENERIC_SERIAL_H | 13 | #define GENERIC_SERIAL_H |
14 | 14 | ||
15 | #include <linux/mutex.h> | ||
16 | |||
15 | struct real_driver { | 17 | struct real_driver { |
16 | void (*disable_tx_interrupts) (void *); | 18 | void (*disable_tx_interrupts) (void *); |
17 | void (*enable_tx_interrupts) (void *); | 19 | void (*enable_tx_interrupts) (void *); |
@@ -34,7 +36,7 @@ struct gs_port { | |||
34 | int xmit_head; | 36 | int xmit_head; |
35 | int xmit_tail; | 37 | int xmit_tail; |
36 | int xmit_cnt; | 38 | int xmit_cnt; |
37 | struct semaphore port_write_sem; | 39 | struct mutex port_write_mutex; |
38 | int flags; | 40 | int flags; |
39 | wait_queue_head_t open_wait; | 41 | wait_queue_head_t open_wait; |
40 | wait_queue_head_t close_wait; | 42 | wait_queue_head_t close_wait; |
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index eef5ccdcd731..fd647fde5ec1 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
@@ -149,22 +149,16 @@ struct disk_attribute { | |||
149 | ({ \ | 149 | ({ \ |
150 | typeof(gendiskp->dkstats->field) res = 0; \ | 150 | typeof(gendiskp->dkstats->field) res = 0; \ |
151 | int i; \ | 151 | int i; \ |
152 | for (i=0; i < NR_CPUS; i++) { \ | 152 | for_each_cpu(i) \ |
153 | if (!cpu_possible(i)) \ | ||
154 | continue; \ | ||
155 | res += per_cpu_ptr(gendiskp->dkstats, i)->field; \ | 153 | res += per_cpu_ptr(gendiskp->dkstats, i)->field; \ |
156 | } \ | ||
157 | res; \ | 154 | res; \ |
158 | }) | 155 | }) |
159 | 156 | ||
160 | static inline void disk_stat_set_all(struct gendisk *gendiskp, int value) { | 157 | static inline void disk_stat_set_all(struct gendisk *gendiskp, int value) { |
161 | int i; | 158 | int i; |
162 | for (i=0; i < NR_CPUS; i++) { | 159 | for_each_cpu(i) |
163 | if (cpu_possible(i)) { | 160 | memset(per_cpu_ptr(gendiskp->dkstats, i), value, |
164 | memset(per_cpu_ptr(gendiskp->dkstats, i), value, | 161 | sizeof (struct disk_stats)); |
165 | sizeof (struct disk_stats)); | ||
166 | } | ||
167 | } | ||
168 | } | 162 | } |
169 | 163 | ||
170 | #else | 164 | #else |
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index dcfd2ecccb5d..92146f3b7423 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
@@ -7,11 +7,10 @@ | |||
7 | #define INIT_FDTABLE \ | 7 | #define INIT_FDTABLE \ |
8 | { \ | 8 | { \ |
9 | .max_fds = NR_OPEN_DEFAULT, \ | 9 | .max_fds = NR_OPEN_DEFAULT, \ |
10 | .max_fdset = __FD_SETSIZE, \ | 10 | .max_fdset = EMBEDDED_FD_SET_SIZE, \ |
11 | .next_fd = 0, \ | ||
12 | .fd = &init_files.fd_array[0], \ | 11 | .fd = &init_files.fd_array[0], \ |
13 | .close_on_exec = &init_files.close_on_exec_init, \ | 12 | .close_on_exec = (fd_set *)&init_files.close_on_exec_init, \ |
14 | .open_fds = &init_files.open_fds_init, \ | 13 | .open_fds = (fd_set *)&init_files.open_fds_init, \ |
15 | .rcu = RCU_HEAD_INIT, \ | 14 | .rcu = RCU_HEAD_INIT, \ |
16 | .free_files = NULL, \ | 15 | .free_files = NULL, \ |
17 | .next = NULL, \ | 16 | .next = NULL, \ |
@@ -20,9 +19,10 @@ | |||
20 | #define INIT_FILES \ | 19 | #define INIT_FILES \ |
21 | { \ | 20 | { \ |
22 | .count = ATOMIC_INIT(1), \ | 21 | .count = ATOMIC_INIT(1), \ |
23 | .file_lock = SPIN_LOCK_UNLOCKED, \ | ||
24 | .fdt = &init_files.fdtab, \ | 22 | .fdt = &init_files.fdtab, \ |
25 | .fdtab = INIT_FDTABLE, \ | 23 | .fdtab = INIT_FDTABLE, \ |
24 | .file_lock = SPIN_LOCK_UNLOCKED, \ | ||
25 | .next_fd = 0, \ | ||
26 | .close_on_exec_init = { { 0, } }, \ | 26 | .close_on_exec_init = { { 0, } }, \ |
27 | .open_fds_init = { { 0, } }, \ | 27 | .open_fds_init = { { 0, } }, \ |
28 | .fd_array = { NULL, } \ | 28 | .fd_array = { NULL, } \ |
diff --git a/include/linux/jbd.h b/include/linux/jbd.h index 41ee79962bb2..2ccbfb6340ba 100644 --- a/include/linux/jbd.h +++ b/include/linux/jbd.h | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/journal-head.h> | 28 | #include <linux/journal-head.h> |
29 | #include <linux/stddef.h> | 29 | #include <linux/stddef.h> |
30 | #include <linux/bit_spinlock.h> | 30 | #include <linux/bit_spinlock.h> |
31 | #include <linux/mutex.h> | ||
31 | #include <asm/semaphore.h> | 32 | #include <asm/semaphore.h> |
32 | #endif | 33 | #endif |
33 | 34 | ||
@@ -575,7 +576,7 @@ struct transaction_s | |||
575 | * @j_wait_checkpoint: Wait queue to trigger checkpointing | 576 | * @j_wait_checkpoint: Wait queue to trigger checkpointing |
576 | * @j_wait_commit: Wait queue to trigger commit | 577 | * @j_wait_commit: Wait queue to trigger commit |
577 | * @j_wait_updates: Wait queue to wait for updates to complete | 578 | * @j_wait_updates: Wait queue to wait for updates to complete |
578 | * @j_checkpoint_sem: Semaphore for locking against concurrent checkpoints | 579 | * @j_checkpoint_mutex: Mutex for locking against concurrent checkpoints |
579 | * @j_head: Journal head - identifies the first unused block in the journal | 580 | * @j_head: Journal head - identifies the first unused block in the journal |
580 | * @j_tail: Journal tail - identifies the oldest still-used block in the | 581 | * @j_tail: Journal tail - identifies the oldest still-used block in the |
581 | * journal. | 582 | * journal. |
@@ -645,7 +646,7 @@ struct journal_s | |||
645 | int j_barrier_count; | 646 | int j_barrier_count; |
646 | 647 | ||
647 | /* The barrier lock itself */ | 648 | /* The barrier lock itself */ |
648 | struct semaphore j_barrier; | 649 | struct mutex j_barrier; |
649 | 650 | ||
650 | /* | 651 | /* |
651 | * Transactions: The current running transaction... | 652 | * Transactions: The current running transaction... |
@@ -687,7 +688,7 @@ struct journal_s | |||
687 | wait_queue_head_t j_wait_updates; | 688 | wait_queue_head_t j_wait_updates; |
688 | 689 | ||
689 | /* Semaphore for locking against concurrent checkpoints */ | 690 | /* Semaphore for locking against concurrent checkpoints */ |
690 | struct semaphore j_checkpoint_sem; | 691 | struct mutex j_checkpoint_mutex; |
691 | 692 | ||
692 | /* | 693 | /* |
693 | * Journal head: identifies the first unused block in the journal. | 694 | * Journal head: identifies the first unused block in the journal. |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 3b507bf05d09..bb6e7ddee2fd 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
@@ -91,6 +91,9 @@ extern struct notifier_block *panic_notifier_list; | |||
91 | extern long (*panic_blink)(long time); | 91 | extern long (*panic_blink)(long time); |
92 | NORET_TYPE void panic(const char * fmt, ...) | 92 | NORET_TYPE void panic(const char * fmt, ...) |
93 | __attribute__ ((NORET_AND format (printf, 1, 2))); | 93 | __attribute__ ((NORET_AND format (printf, 1, 2))); |
94 | extern void oops_enter(void); | ||
95 | extern void oops_exit(void); | ||
96 | extern int oops_may_print(void); | ||
94 | fastcall NORET_TYPE void do_exit(long error_code) | 97 | fastcall NORET_TYPE void do_exit(long error_code) |
95 | ATTRIB_NORET; | 98 | ATTRIB_NORET; |
96 | NORET_TYPE void complete_and_exit(struct completion *, long) | 99 | NORET_TYPE void complete_and_exit(struct completion *, long) |
diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h index 669756bc20a2..778adc0fa640 100644 --- a/include/linux/kprobes.h +++ b/include/linux/kprobes.h | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <linux/percpu.h> | 36 | #include <linux/percpu.h> |
37 | #include <linux/spinlock.h> | 37 | #include <linux/spinlock.h> |
38 | #include <linux/rcupdate.h> | 38 | #include <linux/rcupdate.h> |
39 | #include <linux/mutex.h> | ||
39 | 40 | ||
40 | #ifdef CONFIG_KPROBES | 41 | #ifdef CONFIG_KPROBES |
41 | #include <asm/kprobes.h> | 42 | #include <asm/kprobes.h> |
@@ -152,7 +153,7 @@ struct kretprobe_instance { | |||
152 | }; | 153 | }; |
153 | 154 | ||
154 | extern spinlock_t kretprobe_lock; | 155 | extern spinlock_t kretprobe_lock; |
155 | extern struct semaphore kprobe_mutex; | 156 | extern struct mutex kprobe_mutex; |
156 | extern int arch_prepare_kprobe(struct kprobe *p); | 157 | extern int arch_prepare_kprobe(struct kprobe *p); |
157 | extern void arch_arm_kprobe(struct kprobe *p); | 158 | extern void arch_arm_kprobe(struct kprobe *p); |
158 | extern void arch_disarm_kprobe(struct kprobe *p); | 159 | extern void arch_disarm_kprobe(struct kprobe *p); |
diff --git a/include/linux/loop.h b/include/linux/loop.h index f96506782ebe..e76c7611d6cc 100644 --- a/include/linux/loop.h +++ b/include/linux/loop.h | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/bio.h> | 17 | #include <linux/bio.h> |
18 | #include <linux/blkdev.h> | 18 | #include <linux/blkdev.h> |
19 | #include <linux/spinlock.h> | 19 | #include <linux/spinlock.h> |
20 | #include <linux/mutex.h> | ||
20 | 21 | ||
21 | /* Possible states of device */ | 22 | /* Possible states of device */ |
22 | enum { | 23 | enum { |
@@ -60,7 +61,7 @@ struct loop_device { | |||
60 | int lo_state; | 61 | int lo_state; |
61 | struct completion lo_done; | 62 | struct completion lo_done; |
62 | struct completion lo_bh_done; | 63 | struct completion lo_bh_done; |
63 | struct semaphore lo_ctl_mutex; | 64 | struct mutex lo_ctl_mutex; |
64 | int lo_pending; | 65 | int lo_pending; |
65 | 66 | ||
66 | request_queue_t *lo_queue; | 67 | request_queue_t *lo_queue; |
diff --git a/include/linux/msdos_fs.h b/include/linux/msdos_fs.h index 8bcd9450d926..779e6a5744c7 100644 --- a/include/linux/msdos_fs.h +++ b/include/linux/msdos_fs.h | |||
@@ -184,6 +184,7 @@ struct fat_slot_info { | |||
184 | #include <linux/string.h> | 184 | #include <linux/string.h> |
185 | #include <linux/nls.h> | 185 | #include <linux/nls.h> |
186 | #include <linux/fs.h> | 186 | #include <linux/fs.h> |
187 | #include <linux/mutex.h> | ||
187 | 188 | ||
188 | struct fat_mount_options { | 189 | struct fat_mount_options { |
189 | uid_t fs_uid; | 190 | uid_t fs_uid; |
@@ -226,7 +227,7 @@ struct msdos_sb_info { | |||
226 | unsigned long max_cluster; /* maximum cluster number */ | 227 | unsigned long max_cluster; /* maximum cluster number */ |
227 | unsigned long root_cluster; /* first cluster of the root directory */ | 228 | unsigned long root_cluster; /* first cluster of the root directory */ |
228 | unsigned long fsinfo_sector; /* sector number of FAT32 fsinfo */ | 229 | unsigned long fsinfo_sector; /* sector number of FAT32 fsinfo */ |
229 | struct semaphore fat_lock; | 230 | struct mutex fat_lock; |
230 | unsigned int prev_free; /* previously allocated cluster number */ | 231 | unsigned int prev_free; /* previously allocated cluster number */ |
231 | unsigned int free_clusters; /* -1 if undefined */ | 232 | unsigned int free_clusters; /* -1 if undefined */ |
232 | struct fat_mount_options options; | 233 | struct fat_mount_options options; |
diff --git a/include/linux/nbd.h b/include/linux/nbd.h index f95d51fae733..a6ce409ec6fc 100644 --- a/include/linux/nbd.h +++ b/include/linux/nbd.h | |||
@@ -38,6 +38,7 @@ enum { | |||
38 | #ifdef __KERNEL__ | 38 | #ifdef __KERNEL__ |
39 | 39 | ||
40 | #include <linux/wait.h> | 40 | #include <linux/wait.h> |
41 | #include <linux/mutex.h> | ||
41 | 42 | ||
42 | /* values for flags field */ | 43 | /* values for flags field */ |
43 | #define NBD_READ_ONLY 0x0001 | 44 | #define NBD_READ_ONLY 0x0001 |
@@ -57,7 +58,7 @@ struct nbd_device { | |||
57 | struct request *active_req; | 58 | struct request *active_req; |
58 | wait_queue_head_t active_wq; | 59 | wait_queue_head_t active_wq; |
59 | 60 | ||
60 | struct semaphore tx_lock; | 61 | struct mutex tx_lock; |
61 | struct gendisk *disk; | 62 | struct gendisk *disk; |
62 | int blksize; | 63 | int blksize; |
63 | u64 bytesize; | 64 | u64 bytesize; |
diff --git a/include/linux/ncp_fs_i.h b/include/linux/ncp_fs_i.h index 415be1ec6f98..bdb4c8ae6924 100644 --- a/include/linux/ncp_fs_i.h +++ b/include/linux/ncp_fs_i.h | |||
@@ -19,7 +19,7 @@ struct ncp_inode_info { | |||
19 | __le32 DosDirNum; | 19 | __le32 DosDirNum; |
20 | __u8 volNumber; | 20 | __u8 volNumber; |
21 | __le32 nwattr; | 21 | __le32 nwattr; |
22 | struct semaphore open_sem; | 22 | struct mutex open_mutex; |
23 | atomic_t opened; | 23 | atomic_t opened; |
24 | int access; | 24 | int access; |
25 | int flags; | 25 | int flags; |
diff --git a/include/linux/ncp_fs_sb.h b/include/linux/ncp_fs_sb.h index cf858eb80f0b..b089d9506283 100644 --- a/include/linux/ncp_fs_sb.h +++ b/include/linux/ncp_fs_sb.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/types.h> | 11 | #include <linux/types.h> |
12 | #include <linux/ncp_mount.h> | 12 | #include <linux/ncp_mount.h> |
13 | #include <linux/net.h> | 13 | #include <linux/net.h> |
14 | #include <linux/mutex.h> | ||
14 | 15 | ||
15 | #ifdef __KERNEL__ | 16 | #ifdef __KERNEL__ |
16 | 17 | ||
@@ -51,7 +52,7 @@ struct ncp_server { | |||
51 | receive replies */ | 52 | receive replies */ |
52 | 53 | ||
53 | int lock; /* To prevent mismatch in protocols. */ | 54 | int lock; /* To prevent mismatch in protocols. */ |
54 | struct semaphore sem; | 55 | struct mutex mutex; |
55 | 56 | ||
56 | int current_size; /* for packet preparation */ | 57 | int current_size; /* for packet preparation */ |
57 | int has_subfunction; | 58 | int has_subfunction; |
@@ -96,7 +97,7 @@ struct ncp_server { | |||
96 | struct { | 97 | struct { |
97 | struct work_struct tq; /* STREAM/DGRAM: data/error ready */ | 98 | struct work_struct tq; /* STREAM/DGRAM: data/error ready */ |
98 | struct ncp_request_reply* creq; /* STREAM/DGRAM: awaiting reply from this request */ | 99 | struct ncp_request_reply* creq; /* STREAM/DGRAM: awaiting reply from this request */ |
99 | struct semaphore creq_sem; /* DGRAM only: lock accesses to rcv.creq */ | 100 | struct mutex creq_mutex; /* DGRAM only: lock accesses to rcv.creq */ |
100 | 101 | ||
101 | unsigned int state; /* STREAM only: receiver state */ | 102 | unsigned int state; /* STREAM only: receiver state */ |
102 | struct { | 103 | struct { |
diff --git a/include/linux/pm.h b/include/linux/pm.h index 5be87ba3b7ac..6df2585c0169 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h | |||
@@ -188,6 +188,8 @@ extern void device_power_up(void); | |||
188 | extern void device_resume(void); | 188 | extern void device_resume(void); |
189 | 189 | ||
190 | #ifdef CONFIG_PM | 190 | #ifdef CONFIG_PM |
191 | extern suspend_disk_method_t pm_disk_mode; | ||
192 | |||
191 | extern int device_suspend(pm_message_t state); | 193 | extern int device_suspend(pm_message_t state); |
192 | 194 | ||
193 | #define device_set_wakeup_enable(dev,val) \ | 195 | #define device_set_wakeup_enable(dev,val) \ |
@@ -215,7 +217,6 @@ static inline int dpm_runtime_suspend(struct device * dev, pm_message_t state) | |||
215 | 217 | ||
216 | static inline void dpm_runtime_resume(struct device * dev) | 218 | static inline void dpm_runtime_resume(struct device * dev) |
217 | { | 219 | { |
218 | |||
219 | } | 220 | } |
220 | 221 | ||
221 | #endif | 222 | #endif |
diff --git a/include/linux/profile.h b/include/linux/profile.h index 026969a5595c..1f2fea6640a4 100644 --- a/include/linux/profile.h +++ b/include/linux/profile.h | |||
@@ -14,6 +14,7 @@ | |||
14 | 14 | ||
15 | struct proc_dir_entry; | 15 | struct proc_dir_entry; |
16 | struct pt_regs; | 16 | struct pt_regs; |
17 | struct notifier_block; | ||
17 | 18 | ||
18 | /* init basic kernel profiler */ | 19 | /* init basic kernel profiler */ |
19 | void __init profile_init(void); | 20 | void __init profile_init(void); |
@@ -32,7 +33,6 @@ enum profile_type { | |||
32 | 33 | ||
33 | #ifdef CONFIG_PROFILING | 34 | #ifdef CONFIG_PROFILING |
34 | 35 | ||
35 | struct notifier_block; | ||
36 | struct task_struct; | 36 | struct task_struct; |
37 | struct mm_struct; | 37 | struct mm_struct; |
38 | 38 | ||
diff --git a/include/linux/quota.h b/include/linux/quota.h index f33aeb22c26a..8dc2d04a103f 100644 --- a/include/linux/quota.h +++ b/include/linux/quota.h | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <linux/errno.h> | 38 | #include <linux/errno.h> |
39 | #include <linux/types.h> | 39 | #include <linux/types.h> |
40 | #include <linux/spinlock.h> | 40 | #include <linux/spinlock.h> |
41 | #include <linux/mutex.h> | ||
41 | 42 | ||
42 | #define __DQUOT_VERSION__ "dquot_6.5.1" | 43 | #define __DQUOT_VERSION__ "dquot_6.5.1" |
43 | #define __DQUOT_NUM_VERSION__ 6*10000+5*100+1 | 44 | #define __DQUOT_NUM_VERSION__ 6*10000+5*100+1 |
@@ -215,7 +216,7 @@ struct dquot { | |||
215 | struct list_head dq_inuse; /* List of all quotas */ | 216 | struct list_head dq_inuse; /* List of all quotas */ |
216 | struct list_head dq_free; /* Free list element */ | 217 | struct list_head dq_free; /* Free list element */ |
217 | struct list_head dq_dirty; /* List of dirty dquots */ | 218 | struct list_head dq_dirty; /* List of dirty dquots */ |
218 | struct semaphore dq_lock; /* dquot IO lock */ | 219 | struct mutex dq_lock; /* dquot IO lock */ |
219 | atomic_t dq_count; /* Use count */ | 220 | atomic_t dq_count; /* Use count */ |
220 | wait_queue_head_t dq_wait_unused; /* Wait queue for dquot to become unused */ | 221 | wait_queue_head_t dq_wait_unused; /* Wait queue for dquot to become unused */ |
221 | struct super_block *dq_sb; /* superblock this applies to */ | 222 | struct super_block *dq_sb; /* superblock this applies to */ |
@@ -285,8 +286,8 @@ struct quota_format_type { | |||
285 | 286 | ||
286 | struct quota_info { | 287 | struct quota_info { |
287 | unsigned int flags; /* Flags for diskquotas on this device */ | 288 | unsigned int flags; /* Flags for diskquotas on this device */ |
288 | struct semaphore dqio_sem; /* lock device while I/O in progress */ | 289 | struct mutex dqio_mutex; /* lock device while I/O in progress */ |
289 | struct semaphore dqonoff_sem; /* Serialize quotaon & quotaoff */ | 290 | struct mutex dqonoff_mutex; /* Serialize quotaon & quotaoff */ |
290 | struct rw_semaphore dqptr_sem; /* serialize ops using quota_info struct, pointers from inode to dquots */ | 291 | struct rw_semaphore dqptr_sem; /* serialize ops using quota_info struct, pointers from inode to dquots */ |
291 | struct inode *files[MAXQUOTAS]; /* inodes of quotafiles */ | 292 | struct inode *files[MAXQUOTAS]; /* inodes of quotafiles */ |
292 | struct mem_dqinfo info[MAXQUOTAS]; /* Information for each quota type */ | 293 | struct mem_dqinfo info[MAXQUOTAS]; /* Information for each quota type */ |
diff --git a/include/linux/raid/raid1.h b/include/linux/raid/raid1.h index 9d5494aaac0f..3009c813d83d 100644 --- a/include/linux/raid/raid1.h +++ b/include/linux/raid/raid1.h | |||
@@ -130,6 +130,6 @@ struct r1bio_s { | |||
130 | * with failure when last write completes (and all failed). | 130 | * with failure when last write completes (and all failed). |
131 | * Record that bi_end_io was called with this flag... | 131 | * Record that bi_end_io was called with this flag... |
132 | */ | 132 | */ |
133 | #define R1BIO_Returned 4 | 133 | #define R1BIO_Returned 6 |
134 | 134 | ||
135 | #endif | 135 | #endif |
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index c2ec6c77874e..5673008b61e1 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
@@ -113,8 +113,6 @@ struct rcu_data { | |||
113 | 113 | ||
114 | DECLARE_PER_CPU(struct rcu_data, rcu_data); | 114 | DECLARE_PER_CPU(struct rcu_data, rcu_data); |
115 | DECLARE_PER_CPU(struct rcu_data, rcu_bh_data); | 115 | DECLARE_PER_CPU(struct rcu_data, rcu_bh_data); |
116 | extern struct rcu_ctrlblk rcu_ctrlblk; | ||
117 | extern struct rcu_ctrlblk rcu_bh_ctrlblk; | ||
118 | 116 | ||
119 | /* | 117 | /* |
120 | * Increment the quiescent state counter. | 118 | * Increment the quiescent state counter. |
diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h index 850a974ee505..b95f6eb7254c 100644 --- a/include/linux/seq_file.h +++ b/include/linux/seq_file.h | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
6 | #include <linux/string.h> | 6 | #include <linux/string.h> |
7 | #include <asm/semaphore.h> | 7 | #include <linux/mutex.h> |
8 | 8 | ||
9 | struct seq_operations; | 9 | struct seq_operations; |
10 | struct file; | 10 | struct file; |
@@ -19,7 +19,7 @@ struct seq_file { | |||
19 | size_t count; | 19 | size_t count; |
20 | loff_t index; | 20 | loff_t index; |
21 | loff_t version; | 21 | loff_t version; |
22 | struct semaphore sem; | 22 | struct mutex lock; |
23 | struct seq_operations *op; | 23 | struct seq_operations *op; |
24 | void *private; | 24 | void *private; |
25 | }; | 25 | }; |
diff --git a/include/linux/swap.h b/include/linux/swap.h index 12415dd94451..54eac8a39a4c 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
@@ -234,14 +234,15 @@ extern struct page * read_swap_cache_async(swp_entry_t, struct vm_area_struct *v | |||
234 | /* linux/mm/swapfile.c */ | 234 | /* linux/mm/swapfile.c */ |
235 | extern long total_swap_pages; | 235 | extern long total_swap_pages; |
236 | extern unsigned int nr_swapfiles; | 236 | extern unsigned int nr_swapfiles; |
237 | extern struct swap_info_struct swap_info[]; | ||
238 | extern void si_swapinfo(struct sysinfo *); | 237 | extern void si_swapinfo(struct sysinfo *); |
239 | extern swp_entry_t get_swap_page(void); | 238 | extern swp_entry_t get_swap_page(void); |
240 | extern swp_entry_t get_swap_page_of_type(int type); | 239 | extern swp_entry_t get_swap_page_of_type(int); |
241 | extern int swap_duplicate(swp_entry_t); | 240 | extern int swap_duplicate(swp_entry_t); |
242 | extern int valid_swaphandles(swp_entry_t, unsigned long *); | 241 | extern int valid_swaphandles(swp_entry_t, unsigned long *); |
243 | extern void swap_free(swp_entry_t); | 242 | extern void swap_free(swp_entry_t); |
244 | extern void free_swap_and_cache(swp_entry_t); | 243 | extern void free_swap_and_cache(swp_entry_t); |
244 | extern int swap_type_of(dev_t); | ||
245 | extern unsigned int count_swap_pages(int, int); | ||
245 | extern sector_t map_swap_page(struct swap_info_struct *, pgoff_t); | 246 | extern sector_t map_swap_page(struct swap_info_struct *, pgoff_t); |
246 | extern struct swap_info_struct *get_swap_info_struct(unsigned); | 247 | extern struct swap_info_struct *get_swap_info_struct(unsigned); |
247 | extern int can_share_swap_page(struct page *); | 248 | extern int can_share_swap_page(struct page *); |
diff --git a/include/linux/tty.h b/include/linux/tty.h index f45cd74e6f24..f13f49afe198 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/tty_driver.h> | 24 | #include <linux/tty_driver.h> |
25 | #include <linux/tty_ldisc.h> | 25 | #include <linux/tty_ldisc.h> |
26 | #include <linux/screen_info.h> | 26 | #include <linux/screen_info.h> |
27 | #include <linux/mutex.h> | ||
27 | 28 | ||
28 | #include <asm/system.h> | 29 | #include <asm/system.h> |
29 | 30 | ||
@@ -231,8 +232,8 @@ struct tty_struct { | |||
231 | int canon_data; | 232 | int canon_data; |
232 | unsigned long canon_head; | 233 | unsigned long canon_head; |
233 | unsigned int canon_column; | 234 | unsigned int canon_column; |
234 | struct semaphore atomic_read; | 235 | struct mutex atomic_read_lock; |
235 | struct semaphore atomic_write; | 236 | struct mutex atomic_write_lock; |
236 | unsigned char *write_buf; | 237 | unsigned char *write_buf; |
237 | int write_cnt; | 238 | int write_cnt; |
238 | spinlock_t read_lock; | 239 | spinlock_t read_lock; |
@@ -319,8 +320,7 @@ extern void tty_ldisc_put(int); | |||
319 | extern void tty_wakeup(struct tty_struct *tty); | 320 | extern void tty_wakeup(struct tty_struct *tty); |
320 | extern void tty_ldisc_flush(struct tty_struct *tty); | 321 | extern void tty_ldisc_flush(struct tty_struct *tty); |
321 | 322 | ||
322 | struct semaphore; | 323 | extern struct mutex tty_mutex; |
323 | extern struct semaphore tty_sem; | ||
324 | 324 | ||
325 | /* n_tty.c */ | 325 | /* n_tty.c */ |
326 | extern struct tty_ldisc tty_ldisc_N_TTY; | 326 | extern struct tty_ldisc tty_ldisc_N_TTY; |
diff --git a/include/linux/tty_flip.h b/include/linux/tty_flip.h index 222faf97d5f9..0c6169fff366 100644 --- a/include/linux/tty_flip.h +++ b/include/linux/tty_flip.h | |||
@@ -7,14 +7,8 @@ extern int tty_insert_flip_string_flags(struct tty_struct *tty, unsigned char *c | |||
7 | extern int tty_prepare_flip_string(struct tty_struct *tty, unsigned char **chars, size_t size); | 7 | extern int tty_prepare_flip_string(struct tty_struct *tty, unsigned char **chars, size_t size); |
8 | extern int tty_prepare_flip_string_flags(struct tty_struct *tty, unsigned char **chars, char **flags, size_t size); | 8 | extern int tty_prepare_flip_string_flags(struct tty_struct *tty, unsigned char **chars, char **flags, size_t size); |
9 | 9 | ||
10 | #ifdef INCLUDE_INLINE_FUNCS | 10 | static inline int tty_insert_flip_char(struct tty_struct *tty, |
11 | #define _INLINE_ extern | 11 | unsigned char ch, char flag) |
12 | #else | ||
13 | #define _INLINE_ static __inline__ | ||
14 | #endif | ||
15 | |||
16 | _INLINE_ int tty_insert_flip_char(struct tty_struct *tty, | ||
17 | unsigned char ch, char flag) | ||
18 | { | 12 | { |
19 | struct tty_buffer *tb = tty->buf.tail; | 13 | struct tty_buffer *tb = tty->buf.tail; |
20 | if (tb && tb->active && tb->used < tb->size) { | 14 | if (tb && tb->active && tb->used < tb->size) { |
@@ -25,7 +19,7 @@ _INLINE_ int tty_insert_flip_char(struct tty_struct *tty, | |||
25 | return tty_insert_flip_string_flags(tty, &ch, &flag, 1); | 19 | return tty_insert_flip_string_flags(tty, &ch, &flag, 1); |
26 | } | 20 | } |
27 | 21 | ||
28 | _INLINE_ void tty_schedule_flip(struct tty_struct *tty) | 22 | static inline void tty_schedule_flip(struct tty_struct *tty) |
29 | { | 23 | { |
30 | unsigned long flags; | 24 | unsigned long flags; |
31 | spin_lock_irqsave(&tty->buf.lock, flags); | 25 | spin_lock_irqsave(&tty->buf.lock, flags); |
diff --git a/include/linux/udf_fs_sb.h b/include/linux/udf_fs_sb.h index b15ff2e99c91..80ae9ef940dc 100644 --- a/include/linux/udf_fs_sb.h +++ b/include/linux/udf_fs_sb.h | |||
@@ -13,7 +13,7 @@ | |||
13 | #ifndef _UDF_FS_SB_H | 13 | #ifndef _UDF_FS_SB_H |
14 | #define _UDF_FS_SB_H 1 | 14 | #define _UDF_FS_SB_H 1 |
15 | 15 | ||
16 | #include <asm/semaphore.h> | 16 | #include <linux/mutex.h> |
17 | 17 | ||
18 | #pragma pack(1) | 18 | #pragma pack(1) |
19 | 19 | ||
@@ -111,7 +111,7 @@ struct udf_sb_info | |||
111 | /* VAT inode */ | 111 | /* VAT inode */ |
112 | struct inode *s_vat; | 112 | struct inode *s_vat; |
113 | 113 | ||
114 | struct semaphore s_alloc_sem; | 114 | struct mutex s_alloc_mutex; |
115 | }; | 115 | }; |
116 | 116 | ||
117 | #endif /* _UDF_FS_SB_H */ | 117 | #endif /* _UDF_FS_SB_H */ |
diff --git a/include/linux/vt_kern.h b/include/linux/vt_kern.h index fab5aed8ca31..530ae3f4248c 100644 --- a/include/linux/vt_kern.h +++ b/include/linux/vt_kern.h | |||
@@ -73,6 +73,11 @@ int con_copy_unimap(struct vc_data *dst_vc, struct vc_data *src_vc); | |||
73 | int vt_waitactive(int vt); | 73 | int vt_waitactive(int vt); |
74 | void change_console(struct vc_data *new_vc); | 74 | void change_console(struct vc_data *new_vc); |
75 | void reset_vc(struct vc_data *vc); | 75 | void reset_vc(struct vc_data *vc); |
76 | #ifdef CONFIG_VT | ||
77 | int is_console_suspend_safe(void); | ||
78 | #else | ||
79 | static inline int is_console_suspend_safe(void) { return 1; } | ||
80 | #endif | ||
76 | 81 | ||
77 | /* | 82 | /* |
78 | * vc_screen.c shares this temporary buffer with the console write code so that | 83 | * vc_screen.c shares this temporary buffer with the console write code so that |