Check for fd of -1 to save fsync() and fstat() call
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index 2d745c1..9a39b24 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -1059,9 +1059,11 @@
 #ifdef HAVE_FSTAT
 #  ifdef __VMS
 	/* on OpenVMS we must ensure that all bytes are written to the file */
-	fsync(fd);
+	if (fd != -1) {
+	        fsync(fd);
+	}
 #  endif
-	if (fstat(fd, &st) == 0 && S_ISREG(st.st_mode)) {
+	if (fd != -1 && fstat(fd, &st) == 0 && S_ISREG(st.st_mode)) {
 		if (map_size == 0) {
 			map_size = st.st_size;
 		} else if ((size_t)offset + (size_t)map_size > st.st_size) {