write_in_full: really write in full or return error on disk full.
Signed-off-by: Junio C Hamano <junkio@cox.net>maint
							parent
							
								
									d145144c3b
								
							
						
					
					
						commit
						f6aa66cb95
					
				|  | @ -37,15 +37,14 @@ int write_in_full(int fd, const void *buf, size_t count) | ||||||
| { | { | ||||||
| 	const char *p = buf; | 	const char *p = buf; | ||||||
| 	ssize_t total = 0; | 	ssize_t total = 0; | ||||||
| 	ssize_t written = 0; |  | ||||||
|  |  | ||||||
| 	while (count > 0) { | 	while (count > 0) { | ||||||
| 		written = xwrite(fd, p, count); | 		size_t written = xwrite(fd, p, count); | ||||||
| 		if (written <= 0) { | 		if (written < 0) | ||||||
| 			if (total) | 			return -1; | ||||||
| 				return total; | 		if (!written) { | ||||||
| 			else | 			errno = ENOSPC; | ||||||
| 				return written; | 			return -1; | ||||||
| 		} | 		} | ||||||
| 		count -= written; | 		count -= written; | ||||||
| 		p += written; | 		p += written; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Linus Torvalds
						Linus Torvalds