/* * return true if @layout appears to be valid
*/ int ceph_file_layout_is_valid(conststruct ceph_file_layout *layout)
{
__u32 su = layout->stripe_unit;
__u32 sc = layout->stripe_count;
__u32 os = layout->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;
}
switch (flags & O_ACCMODE) { case O_WRONLY:
mode = CEPH_FILE_MODE_WR; break; case O_RDONLY:
mode = CEPH_FILE_MODE_RD; break; case O_RDWR: case O_ACCMODE: /* this is what the VFS does */
mode = CEPH_FILE_MODE_RDWR; break;
} #ifdef O_LAZY if (flags & O_LAZY)
mode |= CEPH_FILE_MODE_LAZY; #endif
return mode;
}
int ceph_caps_for_mode(int mode)
{ int caps = CEPH_CAP_PIN;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.