Loading fs/ceph/ceph_fs.c +24 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,30 @@ */ #include "types.h" /* * return true if @layout appears to be valid */ int ceph_file_layout_is_valid(const struct ceph_file_layout *layout) { __u32 su = le32_to_cpu(layout->fl_stripe_unit); __u32 sc = le32_to_cpu(layout->fl_stripe_count); __u32 os = le32_to_cpu(layout->fl_object_size); /* stripe unit, object size must be non-zero, 64k increment */ if (!su || (su & (CEPH_MIN_STRIPE_UNIT-1))) return 0; if (!os || (os & (CEPH_MIN_STRIPE_UNIT-1))) return 0; /* object size must be a multiple of stripe unit */ if (os < su || os % su) return 0; /* stripe count must be non-zero */ if (!sc) return 0; return 1; } int ceph_flags_to_mode(int flags) { #ifdef O_DIRECTORY /* fixme */ Loading fs/ceph/ceph_fs.h +2 −0 Original line number Diff line number Diff line Loading @@ -72,7 +72,9 @@ struct ceph_file_layout { __le32 fl_pg_pool; /* namespace, crush ruleset, rep level */ } __attribute__ ((packed)); #define CEPH_MIN_STRIPE_UNIT 65536 int ceph_file_layout_is_valid(const struct ceph_file_layout *layout); /********************************************* Loading Loading
fs/ceph/ceph_fs.c +24 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,30 @@ */ #include "types.h" /* * return true if @layout appears to be valid */ int ceph_file_layout_is_valid(const struct ceph_file_layout *layout) { __u32 su = le32_to_cpu(layout->fl_stripe_unit); __u32 sc = le32_to_cpu(layout->fl_stripe_count); __u32 os = le32_to_cpu(layout->fl_object_size); /* stripe unit, object size must be non-zero, 64k increment */ if (!su || (su & (CEPH_MIN_STRIPE_UNIT-1))) return 0; if (!os || (os & (CEPH_MIN_STRIPE_UNIT-1))) return 0; /* object size must be a multiple of stripe unit */ if (os < su || os % su) return 0; /* stripe count must be non-zero */ if (!sc) return 0; return 1; } int ceph_flags_to_mode(int flags) { #ifdef O_DIRECTORY /* fixme */ Loading
fs/ceph/ceph_fs.h +2 −0 Original line number Diff line number Diff line Loading @@ -72,7 +72,9 @@ struct ceph_file_layout { __le32 fl_pg_pool; /* namespace, crush ruleset, rep level */ } __attribute__ ((packed)); #define CEPH_MIN_STRIPE_UNIT 65536 int ceph_file_layout_is_valid(const struct ceph_file_layout *layout); /********************************************* Loading