function old new delta packed_usage 28706 28623 -83 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* vi: set sw=4 ts=4: */
 | 
						|
/*
 | 
						|
 * Mini fsync implementation for busybox
 | 
						|
 *
 | 
						|
 * Copyright (C) 2008 Nokia Corporation. All rights reserved.
 | 
						|
 *
 | 
						|
 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
 | 
						|
 */
 | 
						|
 | 
						|
//usage:#define fsync_trivial_usage
 | 
						|
//usage:       "[-d] FILE..."
 | 
						|
//usage:#define fsync_full_usage "\n\n"
 | 
						|
//usage:       "Write files' buffered blocks to disk\n"
 | 
						|
//usage:     "\n	-d	Avoid syncing metadata"
 | 
						|
 | 
						|
#include "libbb.h"
 | 
						|
#ifndef O_NOATIME
 | 
						|
# define O_NOATIME 0
 | 
						|
#endif
 | 
						|
 | 
						|
/* This is a NOFORK applet. Be very careful! */
 | 
						|
 | 
						|
int fsync_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 | 
						|
int fsync_main(int argc UNUSED_PARAM, char **argv)
 | 
						|
{
 | 
						|
	int status;
 | 
						|
	int opts;
 | 
						|
 | 
						|
	opts = getopt32(argv, "d"); /* fdatasync */
 | 
						|
	argv += optind;
 | 
						|
	if (!*argv) {
 | 
						|
		bb_show_usage();
 | 
						|
	}
 | 
						|
 | 
						|
	status = EXIT_SUCCESS;
 | 
						|
	do {
 | 
						|
		int fd = open_or_warn(*argv, O_NOATIME | O_NOCTTY | O_RDONLY);
 | 
						|
 | 
						|
		if (fd == -1) {
 | 
						|
			status = EXIT_FAILURE;
 | 
						|
			continue;
 | 
						|
		}
 | 
						|
		if ((opts ? fdatasync(fd) : fsync(fd))) {
 | 
						|
			//status = EXIT_FAILURE; - do we want this?
 | 
						|
			bb_simple_perror_msg(*argv);
 | 
						|
		}
 | 
						|
		close(fd);
 | 
						|
	} while (*++argv);
 | 
						|
 | 
						|
	return status;
 | 
						|
}
 |