cfs_list_t loi_hp_ready_item;
cfs_list_t loi_write_item;
cfs_list_t loi_read_item;
-
+ cfs_list_t loi_sync_fs_item;
unsigned long loi_kms_valid:1;
__u64 loi_kms; /* known minimum size */
struct ost_lvb loi_lvb;
CFS_INIT_LIST_HEAD(&loi->loi_hp_ready_item);
CFS_INIT_LIST_HEAD(&loi->loi_write_item);
CFS_INIT_LIST_HEAD(&loi->loi_read_item);
+ CFS_INIT_LIST_HEAD(&loi->loi_sync_fs_item);
}
struct lov_stripe_md {
typedef int (*obd_enqueue_update_f)(void *cookie, int rc);
+struct osc_sync_fs_wait {
+ struct obd_info *sfw_oi;
+ obd_enqueue_update_f sfw_upcall;
+ int started;
+};
+
/* obd info for a particular level (lov, osc). */
struct obd_info {
/* Lock policy. It keeps an extent which is specific for a particular
cfs_list_t cl_loi_hp_ready_list;
cfs_list_t cl_loi_write_list;
cfs_list_t cl_loi_read_list;
+ cfs_list_t cl_loi_sync_fs_list;
int cl_r_in_flight;
int cl_w_in_flight;
/* just a sum of the loi/lop pending numbers to be exported by /proc */
struct lu_client_seq *cl_seq;
cfs_atomic_t cl_resends; /* resend count */
+ struct osc_sync_fs_wait cl_sf_wait;
};
+
#define obd2cli_tgt(obd) ((char *)(obd)->u.cli.cl_target_uuid.uuid)
#define CL_NOT_QUOTACHECKED 1 /* client->cl_qchk_stat init value */
char *ostname);
void (*o_getref)(struct obd_device *obd);
void (*o_putref)(struct obd_device *obd);
+ int (*o_sync_fs)(struct obd_export *exp, struct obd_info *oinfo,
+ int wait);
/*
* NOTE: If adding ops, add another LPROCFS_OBD_OP_INIT() line
* to lprocfs_alloc_obd_stats() in obdclass/lprocfs_status.c.