On Mon 22-11-10 12:29:18, Lukas Czerner wrote: > It takes fstrim_range structure as an argument. fstrim_range is definec in > the include/linux/fs.h. > > After the FITRIM is done, the number of actually discarded Bytes is stored > in fstrim_range.len to give the user better insight on how much storage > space has been really released for wear-leveling. Umm, why do we have to do this when FITRIM is already handled in fs/ioctl.c? I'd expect us to just provide .trim_fs ioctl, no? Honza > > Signed-off-by: Lukas Czerner <lczerner@xxxxxxxxxx> > --- > fs/ext3/ioctl.c | 22 ++++++++++++++++++++++ > 1 files changed, 22 insertions(+), 0 deletions(-) > > diff --git a/fs/ext3/ioctl.c b/fs/ext3/ioctl.c > index 8897481..fc080dd 100644 > --- a/fs/ext3/ioctl.c > +++ b/fs/ext3/ioctl.c > @@ -276,7 +276,29 @@ group_add_out: > mnt_drop_write(filp->f_path.mnt); > return err; > } > + case FITRIM: { > > + struct super_block *sb = inode->i_sb; > + struct fstrim_range range; > + int ret = 0; > + > + if (!capable(CAP_SYS_ADMIN)) > + return -EPERM; > + > + if (copy_from_user(&range, (struct fstrim_range *)arg, > + sizeof(range))) > + return -EFAULT; > + > + ret = ext3_trim_fs(sb, &range); > + if (ret < 0) > + return ret; > + > + if (copy_to_user((struct fstrim_range *)arg, &range, > + sizeof(range))) > + return -EFAULT; > + > + return 0; > + } > > default: > return -ENOTTY; > -- > 1.7.2.3 > -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html