提交 73c34b6a 编写于 作者: H Hugh Dickins 提交者: Linus Torvalds

swap_info: miscellaneous minor cleanups

Move CONFIG_HIBERNATION's swapdev_block() into the main CONFIG_HIBERNATION
block, remove extraneous whitespace and return, fix typo in a comment.
Signed-off-by: NHugh Dickins <hugh.dickins@tiscali.co.uk>
Reviewed-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Rik van Riel <riel@redhat.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 9625a5f2
...@@ -519,9 +519,9 @@ swp_entry_t get_swap_page_of_type(int type) ...@@ -519,9 +519,9 @@ swp_entry_t get_swap_page_of_type(int type)
return (swp_entry_t) {0}; return (swp_entry_t) {0};
} }
static struct swap_info_struct * swap_info_get(swp_entry_t entry) static struct swap_info_struct *swap_info_get(swp_entry_t entry)
{ {
struct swap_info_struct * p; struct swap_info_struct *p;
unsigned long offset, type; unsigned long offset, type;
if (!entry.val) if (!entry.val)
...@@ -599,7 +599,7 @@ static int swap_entry_free(struct swap_info_struct *p, ...@@ -599,7 +599,7 @@ static int swap_entry_free(struct swap_info_struct *p,
*/ */
void swap_free(swp_entry_t entry) void swap_free(swp_entry_t entry)
{ {
struct swap_info_struct * p; struct swap_info_struct *p;
p = swap_info_get(entry); p = swap_info_get(entry);
if (p) { if (p) {
...@@ -629,7 +629,6 @@ void swapcache_free(swp_entry_t entry, struct page *page) ...@@ -629,7 +629,6 @@ void swapcache_free(swp_entry_t entry, struct page *page)
} }
spin_unlock(&swap_lock); spin_unlock(&swap_lock);
} }
return;
} }
/* /*
...@@ -782,6 +781,21 @@ int swap_type_of(dev_t device, sector_t offset, struct block_device **bdev_p) ...@@ -782,6 +781,21 @@ int swap_type_of(dev_t device, sector_t offset, struct block_device **bdev_p)
return -ENODEV; return -ENODEV;
} }
/*
* Get the (PAGE_SIZE) block corresponding to given offset on the swapdev
* corresponding to given index in swap_info (swap type).
*/
sector_t swapdev_block(int type, pgoff_t offset)
{
struct block_device *bdev;
if ((unsigned int)type >= nr_swapfiles)
return 0;
if (!(swap_info[type]->flags & SWP_WRITEOK))
return 0;
return map_swap_page(swp_entry(type, offset), &bdev);
}
/* /*
* Return either the total number of swap pages of given type, or the number * Return either the total number of swap pages of given type, or the number
* of free pages of that type (depending on @free) * of free pages of that type (depending on @free)
...@@ -805,7 +819,7 @@ unsigned int count_swap_pages(int type, int free) ...@@ -805,7 +819,7 @@ unsigned int count_swap_pages(int type, int free)
spin_unlock(&swap_lock); spin_unlock(&swap_lock);
return n; return n;
} }
#endif #endif /* CONFIG_HIBERNATION */
/* /*
* No need to decide whether this PTE shares the swap entry with others, * No need to decide whether this PTE shares the swap entry with others,
...@@ -1316,23 +1330,6 @@ sector_t map_swap_page(swp_entry_t entry, struct block_device **bdev) ...@@ -1316,23 +1330,6 @@ sector_t map_swap_page(swp_entry_t entry, struct block_device **bdev)
} }
} }
#ifdef CONFIG_HIBERNATION
/*
* Get the (PAGE_SIZE) block corresponding to given offset on the swapdev
* corresponding to given index in swap_info (swap type).
*/
sector_t swapdev_block(int type, pgoff_t offset)
{
struct block_device *bdev;
if ((unsigned int)type >= nr_swapfiles)
return 0;
if (!(swap_info[type]->flags & SWP_WRITEOK))
return 0;
return map_swap_page(swp_entry(type, offset), &bdev);
}
#endif /* CONFIG_HIBERNATION */
/* /*
* Free all of a swapdev's extent information * Free all of a swapdev's extent information
*/ */
...@@ -1523,12 +1520,12 @@ static int setup_swap_extents(struct swap_info_struct *sis, sector_t *span) ...@@ -1523,12 +1520,12 @@ static int setup_swap_extents(struct swap_info_struct *sis, sector_t *span)
SYSCALL_DEFINE1(swapoff, const char __user *, specialfile) SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
{ {
struct swap_info_struct * p = NULL; struct swap_info_struct *p = NULL;
unsigned short *swap_map; unsigned short *swap_map;
struct file *swap_file, *victim; struct file *swap_file, *victim;
struct address_space *mapping; struct address_space *mapping;
struct inode *inode; struct inode *inode;
char * pathname; char *pathname;
int i, type, prev; int i, type, prev;
int err; int err;
...@@ -1780,7 +1777,7 @@ late_initcall(max_swapfiles_check); ...@@ -1780,7 +1777,7 @@ late_initcall(max_swapfiles_check);
*/ */
SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags) SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
{ {
struct swap_info_struct * p; struct swap_info_struct *p;
char *name = NULL; char *name = NULL;
struct block_device *bdev = NULL; struct block_device *bdev = NULL;
struct file *swap_file = NULL; struct file *swap_file = NULL;
...@@ -2116,7 +2113,7 @@ void si_swapinfo(struct sysinfo *val) ...@@ -2116,7 +2113,7 @@ void si_swapinfo(struct sysinfo *val)
*/ */
static int __swap_duplicate(swp_entry_t entry, bool cache) static int __swap_duplicate(swp_entry_t entry, bool cache)
{ {
struct swap_info_struct * p; struct swap_info_struct *p;
unsigned long offset, type; unsigned long offset, type;
int result = -EINVAL; int result = -EINVAL;
int count; int count;
...@@ -2185,7 +2182,7 @@ void swap_duplicate(swp_entry_t entry) ...@@ -2185,7 +2182,7 @@ void swap_duplicate(swp_entry_t entry)
/* /*
* @entry: swap entry for which we allocate swap cache. * @entry: swap entry for which we allocate swap cache.
* *
* Called when allocating swap cache for exising swap entry, * Called when allocating swap cache for existing swap entry,
* This can return error codes. Returns 0 at success. * This can return error codes. Returns 0 at success.
* -EBUSY means there is a swap cache. * -EBUSY means there is a swap cache.
* Note: return code is different from swap_duplicate(). * Note: return code is different from swap_duplicate().
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册