Check to see if the device supports discard before starting the
progress bar, and then printing an error about inappropriate ioctl for
device (when creating a file system image to a file, for example).
Also, add a function signature in the ext2_io.h header file for
io_channel_discard() and fix an extra, uneeded argument in mke2fs's
call to that function.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
extern errcode_t io_channel_write_blk64(io_channel channel,
unsigned long long block,
int count, const void *data);
+extern errcode_t io_channel_discard(io_channel channel,
+ unsigned long long block,
+ unsigned long long count);
/* unix_io.c */
extern io_manager unix_io_manager;
blk64_t cur = 0;
int retval = 0;
+ retval = io_channel_discard(fs->io, 0, 0);
+ if (retval)
+ return retval;
+
count *= (1024 * 1024);
count /= fs->blocksize;
if (cur + count > blocks)
count = blocks - cur;
- retval = io_channel_discard(fs->io, cur, count, fs->blocksize);
+ retval = io_channel_discard(fs->io, cur, count);
if (retval)
break;
cur += count;