X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fllite%2Fpcc.h;h=e704da451b5a449b603ec70eb59f7e7624557cd5;hb=refs%2Fchanges%2F92%2F36892%2F13;hp=7323a03e53fc9936ebc9059c8c5f715b5efefd4f;hpb=a120bb13525727654713f008ffcaf0e3aec7cb65;p=fs%2Flustre-release.git diff --git a/lustre/llite/pcc.h b/lustre/llite/pcc.h index 7323a03..e704da4 100644 --- a/lustre/llite/pcc.h +++ b/lustre/llite/pcc.h @@ -91,20 +91,22 @@ struct pcc_matcher { }; enum pcc_dataset_flags { - PCC_DATASET_NONE = 0x0, + PCC_DATASET_INVALID = 0x0, + /* Indicate that known the file is not in PCC. */ + PCC_DATASET_NONE = 0x01, /* Try auto attach at open, enabled by default */ - PCC_DATASET_OPEN_ATTACH = 0x01, + PCC_DATASET_OPEN_ATTACH = 0x02, /* Try auto attach during IO when layout refresh, enabled by default */ - PCC_DATASET_IO_ATTACH = 0x02, + PCC_DATASET_IO_ATTACH = 0x04, /* Try auto attach at stat */ - PCC_DATASET_STAT_ATTACH = 0x04, + PCC_DATASET_STAT_ATTACH = 0x08, PCC_DATASET_AUTO_ATTACH = PCC_DATASET_OPEN_ATTACH | PCC_DATASET_IO_ATTACH | PCC_DATASET_STAT_ATTACH, /* PCC backend is only used for RW-PCC */ - PCC_DATASET_RWPCC = 0x08, + PCC_DATASET_RWPCC = 0x10, /* PCC backend is only used for RO-PCC */ - PCC_DATASET_ROPCC = 0x10, + PCC_DATASET_ROPCC = 0x20, /* PCC backend provides caching services for both RW-PCC and RO-PCC */ PCC_DATASET_PCC_ALL = PCC_DATASET_RWPCC | PCC_DATASET_ROPCC, }; @@ -113,7 +115,7 @@ struct pcc_dataset { __u32 pccd_rwid; /* Archive ID */ __u32 pccd_roid; /* Readonly ID */ struct pcc_match_rule pccd_rule; /* Match rule */ - enum pcc_dataset_flags pccd_flags; /* flags of PCC backend */ + enum pcc_dataset_flags pccd_flags; /* Flags of PCC backend */ char pccd_pathname[PATH_MAX]; /* full path */ struct path pccd_path; /* Root path */ struct list_head pccd_linkage; /* Linked to pccs_datasets */ @@ -127,6 +129,12 @@ struct pcc_super { struct list_head pccs_datasets; /* creds of process who forced instantiation of super block */ const struct cred *pccs_cred; + /* + * Gobal PCC Generation: it will be increased once the configuration + * for PCC is changed, i.e. add or delete a PCC backend, modify the + * parameters for PCC. + */ + __u64 pccs_generation; }; struct pcc_inode { @@ -176,7 +184,9 @@ enum pcc_io_type { /* fsync system call handling */ PIT_FSYNC, /* splice_read system call */ - PIT_SPLICE_READ + PIT_SPLICE_READ, + /* open system call */ + PIT_OPEN }; enum pcc_cmd_type {