diff options
author | Nitin Gupta <ngupta@vflare.org> | 2010-05-17 11:02:42 +0530 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-18 15:07:52 -0700 |
commit | b27256439568950f30864ccecaeb6dfb588089d5 (patch) | |
tree | 03aaf3a415b65d5f8aa4eefb06f4cddaeb00f4b5 | |
parent | f4a68b9388c7f647ba2fd43faf69cad26ca03206 (diff) | |
download | lwn-b27256439568950f30864ccecaeb6dfb588089d5.tar.gz lwn-b27256439568950f30864ccecaeb6dfb588089d5.zip |
swap: Add flag to identify block swap devices
Added SWP_BLKDEV flag to distinguish block and regular file backed
swap devices. We could also check if a swap is entire block device,
rather than a file, by:
S_ISBLK(swap_info_struct->swap_file->f_mapping->host->i_mode)
but, I think, simply checking this flag is more convenient.
Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Nigel Cunningham <nigel@tuxonice.net>
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | include/linux/swap.h | 1 | ||||
-rw-r--r-- | mm/swapfile.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/swap.h b/include/linux/swap.h index 1f59d9340c4d..ec2b7a42b45f 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -146,6 +146,7 @@ enum { SWP_DISCARDING = (1 << 3), /* now discarding a free cluster */ SWP_SOLIDSTATE = (1 << 4), /* blkdev seeks are cheap */ SWP_CONTINUED = (1 << 5), /* swap_map has count continuation */ + SWP_BLKDEV = (1 << 6), /* its a block device */ /* add others here before... */ SWP_SCANNING = (1 << 8), /* refcount in scan_swap_map */ }; diff --git a/mm/swapfile.c b/mm/swapfile.c index 6cd0a8f90dc7..ecb069e213d0 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -1884,6 +1884,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags) if (error < 0) goto bad_swap; p->bdev = bdev; + p->flags |= SWP_BLKDEV; } else if (S_ISREG(inode->i_mode)) { p->bdev = inode->i_sb->s_bdev; mutex_lock(&inode->i_mutex); |