|
@@ -32,6 +32,12 @@
|
|
#define SEEK_END 2 /* seek relative to end of file */
|
|
#define SEEK_END 2 /* seek relative to end of file */
|
|
#define SEEK_MAX SEEK_END
|
|
#define SEEK_MAX SEEK_END
|
|
|
|
|
|
|
|
+struct fstrim_range {
|
|
|
|
+ uint64_t start;
|
|
|
|
+ uint64_t len;
|
|
|
|
+ uint64_t minlen;
|
|
|
|
+};
|
|
|
|
+
|
|
/* And dynamically-tunable limits and defaults: */
|
|
/* And dynamically-tunable limits and defaults: */
|
|
struct files_stat_struct {
|
|
struct files_stat_struct {
|
|
int nr_files; /* read only */
|
|
int nr_files; /* read only */
|
|
@@ -316,6 +322,7 @@ struct inodes_stat_t {
|
|
#define FIGETBSZ _IO(0x00,2) /* get the block size used for bmap */
|
|
#define FIGETBSZ _IO(0x00,2) /* get the block size used for bmap */
|
|
#define FIFREEZE _IOWR('X', 119, int) /* Freeze */
|
|
#define FIFREEZE _IOWR('X', 119, int) /* Freeze */
|
|
#define FITHAW _IOWR('X', 120, int) /* Thaw */
|
|
#define FITHAW _IOWR('X', 120, int) /* Thaw */
|
|
|
|
+#define FITRIM _IOWR('X', 121, struct fstrim_range) /* Trim */
|
|
|
|
|
|
#define FS_IOC_GETFLAGS _IOR('f', 1, long)
|
|
#define FS_IOC_GETFLAGS _IOR('f', 1, long)
|
|
#define FS_IOC_SETFLAGS _IOW('f', 2, long)
|
|
#define FS_IOC_SETFLAGS _IOW('f', 2, long)
|
|
@@ -1581,6 +1588,7 @@ struct super_operations {
|
|
ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
|
|
ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
|
|
#endif
|
|
#endif
|
|
int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
|
|
int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
|
|
|
|
+ int (*trim_fs) (struct super_block *, struct fstrim_range *);
|
|
};
|
|
};
|
|
|
|
|
|
/*
|
|
/*
|