From ec77fa95033898047499eeedf9e6b38893a685a0 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sun, 17 Apr 2005 10:36:03 +0000 Subject: [PATCH] SDL_CDOpen() fails on Linux if data track on disc is mounted in the filesystem. Removing O_EXCL from open() call fixes this. Problem and solution noted by "Fosters": http://www.libsdl.org/pipermail/sdl/2005-March/068028.html --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401052 --- src/cdrom/linux/SDL_syscdrom.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cdrom/linux/SDL_syscdrom.c b/src/cdrom/linux/SDL_syscdrom.c index 59d1e3c0f..529909dd3 100644 --- a/src/cdrom/linux/SDL_syscdrom.c +++ b/src/cdrom/linux/SDL_syscdrom.c @@ -132,7 +132,7 @@ static int CheckDrive(char *drive, char *mnttype, struct stat *stbuf) /* If it does exist, verify that it's an available CD-ROM */ is_cd = 0; if ( S_ISCHR(stbuf->st_mode) || S_ISBLK(stbuf->st_mode) ) { - cdfd = open(drive, (O_RDONLY|O_EXCL|O_NONBLOCK), 0); + cdfd = open(drive, (O_RDONLY|O_NONBLOCK), 0); if ( cdfd >= 0 ) { info.cdsc_format = CDROM_MSF; /* Under Linux, EIO occurs when a disk is not present. @@ -393,7 +393,7 @@ static const char *SDL_SYS_CDName(int drive) static int SDL_SYS_CDOpen(int drive) { - return(open(SDL_cdlist[drive], (O_RDONLY|O_EXCL|O_NONBLOCK), 0)); + return(open(SDL_cdlist[drive], (O_RDONLY|O_NONBLOCK), 0)); } static int SDL_SYS_CDGetTOC(SDL_CD *cdrom)