Commit d70d13ac by Jakub Jelinek Committed by Jakub Jelinek

unix.c (regular_file): For ACTION_UNSPECIFIED retry with O_RDONLY even if errno is EROFS.

	* io/unix.c (regular_file): For ACTION_UNSPECIFIED retry with
	O_RDONLY even if errno is EROFS.

From-SVN: r122914
parent 0c20e4ec
2007-03-14 Jakub Jelinek <jakub@redhat.com>
* io/unix.c (regular_file): For ACTION_UNSPECIFIED retry with
O_RDONLY even if errno is EROFS.
2007-03-09 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2007-03-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/31099 PR libgfortran/31099
......
...@@ -1213,7 +1213,7 @@ regular_file (st_parameter_open *opp, unit_flags *flags) ...@@ -1213,7 +1213,7 @@ regular_file (st_parameter_open *opp, unit_flags *flags)
break; break;
case STATUS_REPLACE: case STATUS_REPLACE:
crflag = O_CREAT | O_TRUNC; crflag = O_CREAT | O_TRUNC;
break; break;
default: default:
...@@ -1229,14 +1229,14 @@ regular_file (st_parameter_open *opp, unit_flags *flags) ...@@ -1229,14 +1229,14 @@ regular_file (st_parameter_open *opp, unit_flags *flags)
mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
fd = open (path, rwflag | crflag, mode); fd = open (path, rwflag | crflag, mode);
if (flags->action != ACTION_UNSPECIFIED) if (flags->action != ACTION_UNSPECIFIED)
return fd; return fd;
if (fd >= 0) if (fd >= 0)
{ {
flags->action = ACTION_READWRITE; flags->action = ACTION_READWRITE;
return fd; return fd;
} }
if (errno != EACCES) if (errno != EACCES && errno != EROFS)
return fd; return fd;
/* retry for read-only access */ /* retry for read-only access */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment