diff options
| author | Linus Torvalds <torvalds@penguin.transmeta.com> | 2002-06-02 20:57:01 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2002-06-02 20:57:01 -0700 |
| commit | bd81e60effb70b519aee96a06bcf21c112f10f44 (patch) | |
| tree | 9c66c3bfe3c4b4b044cb381aa5918ca011564530 /include/linux | |
| parent | 73b8dabc8d52ca9607e0a7f16930621247057bb4 (diff) | |
| parent | 916e75e349d0dedbebd79a68932308119e4689d4 (diff) | |
Merge http://kernel-acme.bkbits.net:8080/copy_to_from_user-2.5
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/capability.h | 4 | ||||
| -rw-r--r-- | include/linux/fs.h | 3 | ||||
| -rw-r--r-- | include/linux/ide.h | 9 | ||||
| -rw-r--r-- | include/linux/wait.h | 40 |
4 files changed, 12 insertions, 44 deletions
diff --git a/include/linux/capability.h b/include/linux/capability.h index 39c4d290c836..d48177f16b69 100644 --- a/include/linux/capability.h +++ b/include/linux/capability.h @@ -41,6 +41,10 @@ typedef struct __user_cap_data_struct { #ifdef __KERNEL__ +#include <linux/spinlock.h> + +extern spinlock_t task_capability_lock; + /* #define STRICT_CAP_T_TYPECHECKS */ #ifdef STRICT_CAP_T_TYPECHECKS diff --git a/include/linux/fs.h b/include/linux/fs.h index 839dfbd712e2..b85ad43e6549 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -800,6 +800,7 @@ struct super_operations { void (*dirty_inode) (struct inode *); void (*write_inode) (struct inode *, int); void (*put_inode) (struct inode *); + void (*drop_inode) (struct inode *); void (*delete_inode) (struct inode *); void (*put_super) (struct super_block *); void (*write_super) (struct super_block *); @@ -1183,10 +1184,10 @@ extern loff_t default_llseek(struct file *file, loff_t offset, int origin); extern void inode_init_once(struct inode *); extern void iput(struct inode *); -extern void force_delete(struct inode *); extern struct inode * igrab(struct inode *); extern ino_t iunique(struct super_block *, ino_t); extern int inode_needs_sync(struct inode *inode); +extern void generic_delete_inode(struct inode *inode); extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*test)(struct inode *, void *), int (*set)(struct inode *, void *), void *); extern struct inode * iget_locked(struct super_block *, unsigned long); diff --git a/include/linux/ide.h b/include/linux/ide.h index 24f5ce47a19d..b1c154c22228 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -610,11 +610,7 @@ extern int ide_end_request(struct ata_device *drive, struct request *, int); extern void ide_set_handler(struct ata_device *drive, ata_handler_t handler, unsigned long timeout, ata_expiry_t expiry); -/* - * Error reporting, in human readable form (luxurious, but a memory hog). - */ -extern u8 ide_dump_status(struct ata_device *, struct request *rq, const char *, u8); - +extern u8 ata_dump(struct ata_device *, struct request *, const char *); extern ide_startstop_t ata_error(struct ata_device *, struct request *rq, const char *); extern void ide_fixstring(char *s, const int bytecount, const int byteswap); @@ -799,7 +795,7 @@ extern void udma_pci_timeout(struct ata_device *drive); extern void udma_pci_irq_lost(struct ata_device *); extern int udma_pci_setup(struct ata_device *); -extern int udma_new_table(struct ata_channel *, struct request *); +extern int udma_new_table(struct ata_device *, struct request *); extern void udma_destroy_table(struct ata_channel *); extern void udma_print(struct ata_device *); @@ -834,5 +830,6 @@ extern int ata_status(struct ata_device *, u8, u8); extern int ata_irq_enable(struct ata_device *, int); extern void ata_reset(struct ata_channel *); extern void ata_out_regfile(struct ata_device *, struct hd_drive_task_hdr *); +extern void ata_in_regfile(struct ata_device *, struct hd_drive_task_hdr *); #endif diff --git a/include/linux/wait.h b/include/linux/wait.h index 186f03f015f7..cc32e6b1c4f7 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -27,42 +27,8 @@ struct __wait_queue { }; typedef struct __wait_queue wait_queue_t; -/* - * 'dual' spinlock architecture. Can be switched between spinlock_t and - * rwlock_t locks via changing this define. Since waitqueues are quite - * decoupled in the new architecture, lightweight 'simple' spinlocks give - * us slightly better latencies and smaller waitqueue structure size. - */ -#define USE_RW_WAIT_QUEUE_SPINLOCK 0 - -#if USE_RW_WAIT_QUEUE_SPINLOCK -# define wq_lock_t rwlock_t -# define WAITQUEUE_RW_LOCK_UNLOCKED RW_LOCK_UNLOCKED - -# define wq_read_lock read_lock -# define wq_read_lock_irqsave read_lock_irqsave -# define wq_read_unlock_irqrestore read_unlock_irqrestore -# define wq_read_unlock read_unlock -# define wq_write_lock_irq write_lock_irq -# define wq_write_lock_irqsave write_lock_irqsave -# define wq_write_unlock_irqrestore write_unlock_irqrestore -# define wq_write_unlock write_unlock -#else -# define wq_lock_t spinlock_t -# define WAITQUEUE_RW_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED - -# define wq_read_lock spin_lock -# define wq_read_lock_irqsave spin_lock_irqsave -# define wq_read_unlock spin_unlock -# define wq_read_unlock_irqrestore spin_unlock_irqrestore -# define wq_write_lock_irq spin_lock_irq -# define wq_write_lock_irqsave spin_lock_irqsave -# define wq_write_unlock_irqrestore spin_unlock_irqrestore -# define wq_write_unlock spin_unlock -#endif - struct __wait_queue_head { - wq_lock_t lock; + spinlock_t lock; struct list_head task_list; }; typedef struct __wait_queue_head wait_queue_head_t; @@ -80,7 +46,7 @@ typedef struct __wait_queue_head wait_queue_head_t; wait_queue_t name = __WAITQUEUE_INITIALIZER(name, tsk) #define __WAIT_QUEUE_HEAD_INITIALIZER(name) { \ - lock: WAITQUEUE_RW_LOCK_UNLOCKED, \ + lock: SPIN_LOCK_UNLOCKED, \ task_list: { &(name).task_list, &(name).task_list } } #define DECLARE_WAIT_QUEUE_HEAD(name) \ @@ -88,7 +54,7 @@ typedef struct __wait_queue_head wait_queue_head_t; static inline void init_waitqueue_head(wait_queue_head_t *q) { - q->lock = WAITQUEUE_RW_LOCK_UNLOCKED; + q->lock = SPIN_LOCK_UNLOCKED; INIT_LIST_HEAD(&q->task_list); } |
