Hi,
I started to implement 'DISCARD' support in RBD kernel driver as
described on http://tracker.ceph.com/issues/190
This first (easy) step was to add at the end of
drivers/block/rbd.c:rbd_init_disk
/* Advertise discard support for aligned blocks */
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
disk->queue->limits.discard_granularity = segment_size;
disk->queue->limits.discard_alignment = segment_size;
With this both 'mount -o discard' and 'fstrim' stopped to complain about
missing 'DISCARD' support. Good !
Next step was to add support on `rbd_request_fn` which I did (sort of).
But here I'm stuck. If I understood well FS drivers uses `REQ_DISCARD`
flag of `rq->cmd_flags` to notify the driver of the discard operation.
But the problem is that (rq->cmd_flags & REQ_DISCARD) never appears to
be set.
I tried copying then removing large files, lots of small files, forcing
fstrim. But I never got it. I must be missing something obvious but I
can't manage to find what ? Do you have any clue what could be wrong ?
Thanks,
--
Jean-Tiare, shared-hosting team
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html