Re: [PATCH 1/3] Add flag to identify block swap devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi again.

On 07/05/10 17:25, Nitin Gupta wrote:
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@xxxxxxxxxx>
---
  include/linux/swap.h |    1 +
  mm/swapfile.c        |    1 +
  2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/include/linux/swap.h b/include/linux/swap.h
index 1f59d93..ec2b7a4 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 6cd0a8f..ecb069e 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);

The more I read your patches, the more I think either I'm seriously confused (entirely possible!) or you are.

Don't you want to distinguish RAM backed swap from swap that's either a partition or a file? If that's the case, you should also be setting SWP_BLKDEV in the S_ISREG part that follows iff the p->bdev is a regular file.

Regards,

Nigel
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux