blkid_probe_get_topology
blkid_topology_get_alignment_offset
blkid_topology_get_dax
+blkid_topology_get_diskseq
blkid_topology_get_logical_sector_size
blkid_topology_get_minimum_io_size
blkid_topology_get_optimal_io_size
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
+#include <inttypes.h>
#include <blkid.h>
blkid_topology_get_physical_sector_size(tp));
printf("\tdax support : %lu\n",
blkid_topology_get_dax(tp));
+ printf("\tdiskseq : %"PRId64"\n",
+ blkid_topology_get_diskseq(tp));
}
/*
__ul_attribute__((nonnull));
extern unsigned long blkid_topology_get_dax(blkid_topology tp)
__ul_attribute__((nonnull));
+extern uint64_t blkid_topology_get_diskseq(blkid_topology tp)
+ __ul_attribute__((nonnull));
/*
* partitions probing
blkid_probe_set_hint;
blkid_probe_reset_hints;
} BLKID_2_36;
+
+BLKID_2_39 {
+ blkid_topology_get_diskseq;
+} BLKID_2_37;
{ BLKALIGNOFF, NULL, blkid_topology_set_alignment_offset },
{ BLKIOMIN, blkid_topology_set_minimum_io_size },
{ BLKIOOPT, blkid_topology_set_optimal_io_size },
- { BLKPBSZGET, blkid_topology_set_physical_sector_size }
+ { BLKPBSZGET, blkid_topology_set_physical_sector_size },
+ { BLKGETDISKSEQ, blkid_topology_set_diskseq },
/* we read BLKSSZGET in topology.c */
};
{ "queue/optimal_io_size", blkid_topology_set_optimal_io_size },
{ "queue/physical_block_size", blkid_topology_set_physical_sector_size },
{ "queue/dax", blkid_topology_set_dax },
+ { "diskseq", blkid_topology_set_diskseq },
};
static int probe_sysfs_tp(blkid_probe pr,
unsigned long logical_sector_size;
unsigned long physical_sector_size;
unsigned long dax;
+ uint64_t diskseq;
};
/*
val);
}
+int blkid_topology_set_diskseq(blkid_probe pr, uint64_t val)
+{
+ return topology_set_value(pr,
+ "DISKSEQ",
+ offsetof(struct blkid_struct_topology, diskseq),
+ val);
+}
+
/**
* blkid_topology_get_alignment_offset:
* @tp: topology
{
return tp->dax;
}
+
+/**
+ * blkid_topology_get_diskseq
+ * @tp: topology
+ *
+ * Returns: disk sequence number
+ *
+ * Since: 2.39
+ */
+uint64_t blkid_topology_get_diskseq(blkid_topology tp)
+{
+ return tp->diskseq;
+}
extern int blkid_topology_set_optimal_io_size(blkid_probe pr, unsigned long val);
extern int blkid_topology_set_physical_sector_size(blkid_probe pr, unsigned long val);
extern int blkid_topology_set_dax(blkid_probe pr, unsigned long val);
+extern int blkid_topology_set_diskseq(blkid_probe pr, uint64_t val);
/*
* topology probers
+ID_FS_DISKSEQ=S
ID_IOLIMIT_LOGICAL_SECTOR_SIZE=512
ID_IOLIMIT_MINIMUM_IO_SIZE=512
ID_IOLIMIT_PHYSICAL_SECTOR_SIZE=512
+ID_FS_DISKSEQ=S
ID_IOLIMIT_LOGICAL_SECTOR_SIZE=512
ID_IOLIMIT_MINIMUM_IO_SIZE=512
ID_IOLIMIT_PHYSICAL_SECTOR_SIZE=512
"$TS_CMD_BLKID" -i -o udev "$TS_LODEV" \
2> "$TS_ERRLOG" \
+ | sed -E -e 's/^ID_FS_DISKSEQ=[[:digit:]]+$/ID_FS_DISKSEQ=S/' \
| sort > "$TS_OUTPUT"
ts_finalize_subtest
"$TS_CMD_BLKID" -i -o udev "$TS_LODEV"p1 \
2> "$TS_ERRLOG" \
+ | sed -E -e 's/^ID_FS_DISKSEQ=[[:digit:]]+$/ID_FS_DISKSEQ=S/' \
| sort > "$TS_OUTPUT"
ts_finalize_subtest