On Fri, Sep 4, 2015 at 5:51 PM, Hitoshi Mitake <[email protected]> wrote: > On Wed, Sep 2, 2015 at 9:36 PM, Vasiliy Tolstov <[email protected]> wrote: >> 2015-09-01 6:03 GMT+03:00 Hitoshi Mitake <[email protected]>: >>> This patch refines discard support of the sheepdog driver. The >>> existing discard mechanism was implemented on SD_OP_DISCARD_OBJ, which >>> was introduced before fine grained reference counting on newer >>> sheepdog. It doesn't care about relations of snapshots and clones and >>> discards objects unconditionally. >>> >>> With this patch, the driver just updates an inode object for updating >>> reference. Removing the object is done in sheep process side. >>> >>> Cc: Teruaki Ishizaki <[email protected]> >>> Cc: Vasiliy Tolstov <[email protected]> >>> Cc: Jeff Cody <[email protected]> >>> Signed-off-by: Hitoshi Mitake <[email protected]> >> >> >> I'm test this patch and now discard working properly and no errors in >> sheepdog log file. >> >> Tested-by: Vasiliy Tolstov <[email protected]> > > On the second thought, this patch has a problem of handling snapshot. > Please drop this one (1st patch is ok to apply). > > I'll solve the problem in sheepdog side.
On the third thought, this patch can work well ;) Please pick this patch, Jeff. I considered about a case of interleaving of snapshotting and discarding requests like below: 1. user invokes dog vdi snapshot, a command for making current VDI snapshot (updating inode objects) 2. discard request from VM before the request of 1 completes 3. discard completes 4. request of 1 completes In this case, some data_vdi_id of original inode can be overwritten before completion of snapshotting. However, this behavior is valid because dog vdi snapshot doesn't return ack to the user. Thanks, Hitoshi > > Thanks, > Hitoshi > >> >> -- >> Vasiliy Tolstov, >> e-mail: [email protected] >> -- >> sheepdog mailing list >> [email protected] >> https://lists.wpkg.org/mailman/listinfo/sheepdog
