Commit 1a65afb7 authored by Paul Eggert's avatar Paul Eggert
Browse files

Don’t worry about unlink if errno == ENOENT

* src/fileio.c (Fdelete_file):
* src/keyboard.c (Fopen_dribble_file): Do not report failure to
remove a file if unlink fails with errno == ENOENT.  This can
happen even if Emacs is the only program removing the file, in
case an NFS cache overflows.  The file does not exist if errno ==
ENOENT, so it is OK to proceed.
parent f74164a8
......@@ -2216,7 +2216,7 @@ With a prefix argument, TRASH is nil. */)
encoded_file = ENCODE_FILE (filename);
if (unlink (SSDATA (encoded_file)) < 0)
if (unlink (SSDATA (encoded_file)) != 0 && errno != ENOENT)
report_file_error ("Removing old name", filename);
return Qnil;
}
......
......@@ -10168,7 +10168,8 @@ This may include sensitive information such as passwords. */)
file = Fexpand_file_name (file, Qnil);
encfile = ENCODE_FILE (file);
fd = emacs_open (SSDATA (encfile), O_WRONLY | O_CREAT | O_EXCL, 0600);
if (fd < 0 && errno == EEXIST && unlink (SSDATA (encfile)) == 0)
if (fd < 0 && errno == EEXIST
&& (unlink (SSDATA (encfile)) == 0 || errno == ENOENT))
fd = emacs_open (SSDATA (encfile), O_WRONLY | O_CREAT | O_EXCL, 0600);
dribble = fd < 0 ? 0 : fdopen (fd, "w");
if (dribble == 0)
......
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