]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
swap: Add flag to identify block swap devices
authorNitin Gupta <ngupta@vflare.org>
Mon, 17 May 2010 05:32:42 +0000 (11:02 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 18 May 2010 22:07:52 +0000 (15:07 -0700)
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>
include/linux/swap.h
mm/swapfile.c

index 1f59d9340c4da4af2f7c59eed5b8e78763c35c88..ec2b7a42b45f683cc885ed7001a444f3349681da 100644 (file)
@@ -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 */
 };
index 6cd0a8f90dc74119d9db32fae7fb9f7ea01de13c..ecb069e213d097faf58edf951e84adf26968bea7 100644 (file)
@@ -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);