Re: [Qemu-block] [PATCH] raw-posix.c: Make GetBSDPath() handle caching options
On Mon, Jul 27, 2015 at 12:28:03PM -0400, Programmingkid wrote: Add support for caching options that can be specified from the command line. Please squash this into the commit message when merging: The CD-ROM raw char device bypasses the host page cache and therefore has alignment requirements. Alignment probing is necessary so only use the raw char device if BDRV_O_NOCACHE is set. This patch fixes -cdrom /dev/cdrom on Mac OS X hosts, where bdrv_read() used to fail due to misaligned requests during image format probing. Reviewed-by: Stefan Hajnoczi stefa...@redhat.com pgpRyGhPLcLmr.pgp Description: PGP signature
Re: [Qemu-block] [PATCH] raw-posix.c: Make GetBSDPath() handle caching options
On Jul 28, 2015, at 6:18 AM, Stefan Hajnoczi wrote: On Mon, Jul 27, 2015 at 12:28:03PM -0400, Programmingkid wrote: Add support for caching options that can be specified from the command line. Please squash this into the commit message when merging: Is this message meant for Kevin Wolf? The CD-ROM raw char device bypasses the host page cache and therefore has alignment requirements. Alignment probing is necessary so only use the raw char device if BDRV_O_NOCACHE is set. This patch fixes -cdrom /dev/cdrom on Mac OS X hosts, where bdrv_read() used to fail due to misaligned requests during image format probing. Reviewed-by: Stefan Hajnoczi stefa...@redhat.com
Re: [Qemu-block] [PATCH] raw-posix.c: Make GetBSDPath() handle caching options
On Tue, Jul 28, 2015 at 4:26 PM, Programmingkid programmingk...@gmail.com wrote: On Jul 28, 2015, at 6:18 AM, Stefan Hajnoczi wrote: On Mon, Jul 27, 2015 at 12:28:03PM -0400, Programmingkid wrote: Add support for caching options that can be specified from the command line. Please squash this into the commit message when merging: Is this message meant for Kevin Wolf? Yes. He maintains block/raw-posix.c and will see the message when reviewing this patch series. Stefan
[Qemu-block] [PATCH] raw-posix.c: Make GetBSDPath() handle caching options
Add support for caching options that can be specified from the command line. Signed-off-by: John Arbuckle programmingk...@gmail.com --- block/raw-posix.c | 15 +-- 1 files changed, 9 insertions(+), 6 deletions(-) diff --git a/block/raw-posix.c b/block/raw-posix.c index cbe6574..67d1d48 100644 --- a/block/raw-posix.c +++ b/block/raw-posix.c @@ -1973,8 +1973,8 @@ BlockDriver bdrv_file = { #if defined(__APPLE__) defined(__MACH__) static kern_return_t FindEjectableCDMedia( io_iterator_t *mediaIterator ); -static kern_return_t GetBSDPath( io_iterator_t mediaIterator, char *bsdPath, CFIndex maxPathSize ); - +static kern_return_t GetBSDPath(io_iterator_t mediaIterator, char *bsdPath, +CFIndex maxPathSize, int flags); kern_return_t FindEjectableCDMedia( io_iterator_t *mediaIterator ) { kern_return_t kernResult; @@ -2001,7 +2001,8 @@ kern_return_t FindEjectableCDMedia( io_iterator_t *mediaIterator ) return kernResult; } -kern_return_t GetBSDPath( io_iterator_t mediaIterator, char *bsdPath, CFIndex maxPathSize ) +kern_return_t GetBSDPath(io_iterator_t mediaIterator, char *bsdPath, + CFIndex maxPathSize, int flags) { io_object_t nextMedia; kern_return_t kernResult = KERN_FAILURE; @@ -2014,7 +2015,9 @@ kern_return_t GetBSDPath( io_iterator_t mediaIterator, char *bsdPath, CFIndex ma if ( bsdPathAsCFString ) { size_t devPathLength; strcpy( bsdPath, _PATH_DEV ); -strcat( bsdPath, r ); +if (flags BDRV_O_NOCACHE) { +strcat(bsdPath, r); +} devPathLength = strlen( bsdPath ); if ( CFStringGetCString( bsdPathAsCFString, bsdPath + devPathLength, maxPathSize - devPathLength, kCFStringEncodingASCII ) ) { kernResult = KERN_SUCCESS; @@ -2126,8 +2129,8 @@ static int hdev_open(BlockDriverState *bs, QDict *options, int flags, int fd; kernResult = FindEjectableCDMedia( mediaIterator ); -kernResult = GetBSDPath( mediaIterator, bsdPath, sizeof( bsdPath ) ); - +kernResult = GetBSDPath(mediaIterator, bsdPath, sizeof(bsdPath), +flags); if ( bsdPath[ 0 ] != '\0' ) { strcat(bsdPath,s0); /* some CDs don't have a partition 0 */ -- 1.7.5.4