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 */
if (num_cookies == 1)
oti->oti_logcookies = &oti->oti_onecookie;
else
- OBD_ALLOC(oti->oti_logcookies,
- num_cookies * sizeof(oti->oti_onecookie));
+ OBD_ALLOC_LARGE(oti->oti_logcookies,
+ num_cookies * sizeof(oti->oti_onecookie));
oti->oti_numcookies = num_cookies;
}
if (oti->oti_logcookies == &oti->oti_onecookie)
LASSERT(oti->oti_numcookies == 1);
else
- OBD_FREE(oti->oti_logcookies,
- oti->oti_numcookies * sizeof(oti->oti_onecookie));
+ OBD_FREE_LARGE(oti->oti_logcookies,
+ oti->oti_numcookies*sizeof(oti->oti_onecookie));
oti->oti_logcookies = NULL;
oti->oti_numcookies = 0;
}
/* Configuration event */
OBD_NOTIFY_CONFIG,
/* Trigger quota recovery */
- OBD_NOTIFY_QUOTA
+ OBD_NOTIFY_QUOTA,
+ /* Administratively deactivate/activate event */
+ OBD_NOTIFY_DEACTIVATE,
+ OBD_NOTIFY_ACTIVATE
};
/* bit-mask flags for config events */
struct obd_type *obd_type;
__u32 obd_magic;
+ int obd_minor;
+ cfs_hlist_node_t obd_minor_node; /** < find by minor */
+
+ cfs_list_t obd_list;
/* common and UUID name of this device */
char obd_name[MAX_OBD_NAME];
+ cfs_hlist_node_t obd_name_node; /** < find by name */
+
struct obd_uuid obd_uuid;
+ cfs_hlist_node_t obd_uuid_node; /** < find by uuid */
struct lu_device *obd_lu_dev;
- int obd_minor;
/* bitfield modification is protected by obd_dev_lock */
unsigned long obd_attached:1, /* finished attach */
obd_set_up:1, /* finished setup */
int (*o_punch)(struct obd_export *exp, struct obd_info *oinfo,
struct obd_trans_info *oti,
struct ptlrpc_request_set *rqset);
- int (*o_sync)(struct obd_export *exp, struct obdo *oa,
- struct lov_stripe_md *ea, obd_size start, obd_size end,
- void *capa);
+ int (*o_sync)(struct obd_export *exp, struct obd_info *oinfo,
+ obd_size start, obd_size end,
+ struct ptlrpc_request_set *set);
int (*o_migrate)(struct lustre_handle *conn, struct lov_stripe_md *dst,
struct lov_stripe_md *src, obd_size start,
obd_size end, struct obd_trans_info *oti);
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.