-
Vladimir Saveliev authored
New IO engine implementation lost consuming grants by direct I/O writes. That led to early emergence of out of space condition during direct I/O. The below illustrates the problem: # OSTSIZE=100000 sh llmount.sh # dd if=/dev/zero of=/mnt/lustre/file bs=4k count=100 oflag=direct dd: error writing ‘/mnt/lustre/file’: No space left on device Consume grants for direct I/O. Try to consume grants in osc_queue_sync_pages() when it is called for pages which are being writted in direct i/o. Tests are added to verify grant consumption in buffered and direct i/o and to verify direct i/o overwrite when ost is full. The overwrite test is for ldiskfs only as zfs is unable to overwrite when it is full. Lustre-change: https://review.whamcloud.com/35896 Lustre-commit: 05f326a7 Fixes: 9fe4b52a ("LU-1030 osc: new IO engine implementation") Signed-off-by: Vladimir Saveliev <c17830@cray.com> Change-Id: I9a199452c564e8e8ad02f79231e8481166f3666e Cray-bug-id: LUS-7036 Reviewed-on: https://review.whamcloud.com/39386 Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
ab95f0c3