btrfs-progs: check if device supports trim

The message about trim was printed unconditionally, we should check if
trim is supported at all.

Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
master
David Sterba 2013-09-20 18:42:07 +02:00 committed by Chris Mason
parent b5efa4c3c9
commit 25d82d2229
1 changed files with 8 additions and 5 deletions

13
utils.c
View File

@ -597,13 +597,16 @@ int btrfs_prepare_device(int fd, char *file, int zero_end, u64 *block_count_ret,
}
if (discard) {
fprintf(stderr, "Performing full device TRIM (%s) ...\n",
pretty_size(block_count));
/*
* We intentionally ignore errors from the discard ioctl. It is
* not necessary for the mkfs functionality but just an optimization.
* We intentionally ignore errors from the discard ioctl. It
* is not necessary for the mkfs functionality but just an
* optimization.
*/
discard_blocks(fd, 0, block_count);
if (discard_blocks(fd, 0, 0) == 0) {
fprintf(stderr, "Performing full device TRIM (%s) ...\n",
pretty_size(block_count));
discard_blocks(fd, 0, block_count);
}
}
ret = zero_dev_start(fd);