dump_marks(): reimplement using fdopen_lock_file()
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									013870cd2c
								
							
						
					
					
						commit
						f70f0565b3
					
				|  | @ -1794,20 +1794,18 @@ static void dump_marks_helper(FILE *f, | |||
| static void dump_marks(void) | ||||
| { | ||||
| 	static struct lock_file mark_lock; | ||||
| 	int mark_fd; | ||||
| 	FILE *f; | ||||
|  | ||||
| 	if (!export_marks_file) | ||||
| 		return; | ||||
|  | ||||
| 	mark_fd = hold_lock_file_for_update(&mark_lock, export_marks_file, 0); | ||||
| 	if (mark_fd < 0) { | ||||
| 	if (hold_lock_file_for_update(&mark_lock, export_marks_file, 0) < 0) { | ||||
| 		failure |= error("Unable to write marks file %s: %s", | ||||
| 			export_marks_file, strerror(errno)); | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	f = fdopen(mark_fd, "w"); | ||||
| 	f = fdopen_lock_file(&mark_lock, "w"); | ||||
| 	if (!f) { | ||||
| 		int saved_errno = errno; | ||||
| 		rollback_lock_file(&mark_lock); | ||||
|  | @ -1816,22 +1814,7 @@ static void dump_marks(void) | |||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * Since the lock file was fdopen()'ed, it should not be close()'ed. | ||||
| 	 * Assign -1 to the lock file descriptor so that commit_lock_file() | ||||
| 	 * won't try to close() it. | ||||
| 	 */ | ||||
| 	mark_lock.fd = -1; | ||||
|  | ||||
| 	dump_marks_helper(f, 0, marks); | ||||
| 	if (ferror(f) || fclose(f)) { | ||||
| 		int saved_errno = errno; | ||||
| 		rollback_lock_file(&mark_lock); | ||||
| 		failure |= error("Unable to write marks file %s: %s", | ||||
| 			export_marks_file, strerror(saved_errno)); | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	if (commit_lock_file(&mark_lock)) { | ||||
| 		failure |= error("Unable to commit marks file %s: %s", | ||||
| 			export_marks_file, strerror(errno)); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Michael Haggerty
						Michael Haggerty