• Chuck Tuffli's avatar
    bhyve blockif: fix blockif_candelete with Capsicum · d8c1d7b6
    Chuck Tuffli authored
    NVMe conformance tests for the Format command failed if the
    backing-storage for the bhyve device was a file instead of a Zvol. The
    tests (and the specification) expect a Format to destroy all previously
    written data. The bhyve NVMe emulation implements this by trimming /
    deallocating all data from the backing-storage.
    
    The blockif_candelete() function indicated the file did not support
    deallocation (i.e. fpathconf(..., _PC_DEALLOC_PRESENT) returned FALSE)
    even though the kernel supported file hole punching. This occurs on
    builds with Capsicum enabled because blockif did not allow the
    fpathconf(2) right.
    
    Fix is to add CAP_FPATHCONF to the cap_rights_init(3) call.
    
    PR:		260081
    Reviewed by:	allanjude, markj, jhb
    MFC after:	1 week
    Differential Revision:	https://reviews.freebsd.org/D33203
    d8c1d7b6