فهرست منبع

don't complain about disappearing temp files

some other process might be cleaning up concurrently ...
Oswald Buddenhagen 14 سال پیش
والد
کامیت
dee9f51096
1فایلهای تغییر یافته به همراه6 افزوده شده و 5 حذف شده
  1. 6 5
      src/drv_maildir.c

+ 6 - 5
src/drv_maildir.c

@@ -280,15 +280,16 @@ maildir_validate( const char *prefix, const char *box, int create, maildir_store
 		time( &now );
 		while ((entry = readdir( dirp ))) {
 			nfsnprintf( buf + bl, sizeof(buf) - bl, "%s", entry->d_name );
-			if (stat( buf, &st ))
-				error( "Maildir error: stat: %s: %s (errno %d)\n",
-				       buf, strerror(errno), errno );
-			else if (S_ISREG(st.st_mode) && now - st.st_ctime >= _24_HOURS) {
+			if (stat( buf, &st )) {
+				if (errno != ENOENT)
+					error( "Maildir error: stat: %s: %s (errno %d)\n",
+					       buf, strerror(errno), errno );
+			} else if (S_ISREG(st.st_mode) && now - st.st_ctime >= _24_HOURS) {
 				/* this should happen infrequently enough that it won't be
 				 * bothersome to the user to display when it occurs.
 				 */
 				info( "Maildir notice: removing stale file %s\n", buf );
-				if (unlink( buf ))
+				if (unlink( buf ) && errno != ENOENT)
 					error( "Maildir error: unlink: %s: %s (errno %d)\n",
 					       buf, strerror(errno), errno );
 			}