/* lock ids are made up in the following manner: * name[0] --> type * name[1-6] --> 6 pad characters, reserved for now * name[7-22] --> block number, expressed in hex as 16 chars * name[23-30] --> i_generation, expressed in hex 8 chars
* name[31] --> '\0' */ #define OCFS2_LOCK_ID_MAX_LEN 32 #define OCFS2_LOCK_ID_PAD "000000"
staticinlinechar ocfs2_lock_type_char(enum ocfs2_lock_type type)
{ char c; switch (type) { case OCFS2_LOCK_TYPE_META:
c = 'M'; break; case OCFS2_LOCK_TYPE_DATA:
c = 'D'; break; case OCFS2_LOCK_TYPE_SUPER:
c = 'S'; break; case OCFS2_LOCK_TYPE_RENAME:
c = 'R'; break; case OCFS2_LOCK_TYPE_RW:
c = 'W'; break; case OCFS2_LOCK_TYPE_DENTRY:
c = 'N'; break; case OCFS2_LOCK_TYPE_OPEN:
c = 'O'; break; case OCFS2_LOCK_TYPE_FLOCK:
c = 'F'; break; case OCFS2_LOCK_TYPE_QINFO:
c = 'Q'; break; case OCFS2_LOCK_TYPE_NFS_SYNC:
c = 'Y'; break; case OCFS2_LOCK_TYPE_ORPHAN_SCAN:
c = 'P'; break; case OCFS2_LOCK_TYPE_REFCOUNT:
c = 'T'; break; case OCFS2_LOCK_TYPE_TRIM_FS:
c = 'I'; break; default:
c = '\0';
}
return c;
}
staticchar *ocfs2_lock_type_strings[] = {
[OCFS2_LOCK_TYPE_META] = "Meta",
[OCFS2_LOCK_TYPE_DATA] = "Data",
[OCFS2_LOCK_TYPE_SUPER] = "Super",
[OCFS2_LOCK_TYPE_RENAME] = "Rename", /* Need to differentiate from [R]ename.. serializing writes is the
* important job it does, anyway. */
[OCFS2_LOCK_TYPE_RW] = "Write/Read",
[OCFS2_LOCK_TYPE_DENTRY] = "Dentry",
[OCFS2_LOCK_TYPE_OPEN] = "Open",
[OCFS2_LOCK_TYPE_FLOCK] = "Flock",
[OCFS2_LOCK_TYPE_QINFO] = "Quota",
[OCFS2_LOCK_TYPE_NFS_SYNC] = "NFSSync",
[OCFS2_LOCK_TYPE_ORPHAN_SCAN] = "OrphanScan",
[OCFS2_LOCK_TYPE_REFCOUNT] = "Refcount",
[OCFS2_LOCK_TYPE_TRIM_FS] = "TrimFs",
};
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.