Please don't reply to lustre-devel. Instead, comment in Bugzilla by using the following link: https://bugzilla.lustre.org/show_bug.cgi?id=9977
it seems the last patch has some defects: 1. filter_precreate() if (fo_destroy_in_progress) lost "rc = -EAGAIN;" when was moved below in the code. looks like a bug. 2. if there is no object on ost, filter_lvbo_init() does not initialize lvb, just sets enoent into lbv->blocks. after that object may be created in several cases: filter_truncate, filter_preprw_write and ost_create. whereas first 2 update lvb (filter_lbvo_update), ost_create does not do it. the following glimpse calls ldlm_handle_enqueue()/filter_intent_policy() and updates lvb only if there are PW locks after lvb size, i.e. does not update lvb in other cases, thus it seems glimpse may return wrong data. 3. another problem with ost_create, if a client has a lock over a non-existent object, an ost_create happens, lock is not cancelled, thus client will not go to ost to update the object metadata, in particular on the next glimpse client will still think there is no object. 4. why do we need both OST_LVB_ERR_INIT и OST_LVB_ERR_MASK? MASK seems to be enough. _______________________________________________ Lustre-devel mailing list [email protected] https://mail.clusterfs.com/mailman/listinfo/lustre-devel
