Add a littler helper to make the somewhat arcane bd_contains checks a little more obvious.
Showing the changes to include/linux/blkdev.h (1 of 10 files). Show all
Unified · Split
| @@ -1353,6 +1353,11 @@ static inline int sb_issue_zeroout(struct super_block *sb, sector_t block, · 1352 unmodified lines | ||
| 1353 | 1353 | |
| 1354 | 1354 | extern int blk_verify_command(unsigned char *cmd, fmode_t mode); |
| 1355 | 1355 | |
| 1356 | +static inline bool bdev_is_partition(struct block_device *bdev) | |
| 1357 | +{ | |
| 1358 | + return bdev->bd_partno; | |
| 1359 | +} | |
| 1360 | + | |
| 1356 | 1361 | enum blk_default_limits { |
| 1357 | 1362 | BLK_MAX_SEGMENTS = 128, |
| 1358 | 1363 | BLK_SAFE_MAX_SECTORS = 255, |
| @@ -1469,7 +1474,7 @@ static inline int bdev_alignment_offset(struct block_device *bdev) · 110 unmodified lines | ||
| 1469 | 1474 | |
| 1470 | 1475 | if (q->limits.misaligned) |
| 1471 | 1476 | return -1; |
| 1472 | − if (bdev != bdev->bd_contains) | |
| 1477 | + if (bdev_is_partition(bdev)) | |
| 1473 | 1478 | return queue_limit_alignment_offset(&q->limits, |
| 1474 | 1479 | bdev->bd_part->start_sect); |
| 1475 | 1480 | return q->limits.alignment_offset; |
| @@ -1510,7 +1515,7 @@ static inline int bdev_discard_alignment(struct block_device *bdev) · 34 unmodified lines | ||
| 1510 | 1515 | { |
| 1511 | 1516 | struct request_queue *q = bdev_get_queue(bdev); |
| 1512 | 1517 | |
| 1513 | − if (bdev != bdev->bd_contains) | |
| 1518 | + if (bdev_is_partition(bdev)) | |
| 1514 | 1519 | return queue_limit_discard_alignment(&q->limits, |
| 1515 | 1520 | bdev->bd_part->start_sect); |
| 1516 | 1521 | return q->limits.discard_alignment; |