All pastes #30615 Raw Edit

neuron

public text v1 · immutable
#30615 ·published 2005-11-23 16:27 UTC
rendered paste body
diff -ur FuseCompress.snapshot5/direct_compress.c FuseCompress/direct_compress.c
--- FuseCompress.snapshot5/direct_compress.c	2005-11-23 14:25:04.000000000 +0100
+++ FuseCompress/direct_compress.c	2005-11-23 15:29:53.000000000 +0100
@@ -146,7 +146,7 @@
 	assert(filedata->database->compressor);
 	if (!filedata->compressor_data) {
 		assert(filedata->offset == 0);
-		filedata->compressor_data = COMPRESSOR_OPEN(filedata->fd,"rb");
+		filedata->compressor_data = COMPRESSOR_OPEN(dup(filedata->fd),"rb");
 		if (!filedata->compressor_data) {
 			syslog(LOG_ERR,"Failed to do COMPRESSOR_OPEN on fd %d file %s, last errno : %s\n",filedata->fd,filedata->database->filename,strerror(errno));
 			return FAIL;
@@ -189,7 +189,7 @@
 		assert(filedata->offset == 0);
 		_DIRECT_MSG("direct_compress Writing header on %s\n",filedata->database->filename);
 		assert(file_write_header(filedata->fd, filedata->database->compressor, 0) != FAIL);
-		filedata->compressor_data = COMPRESSOR_OPEN(filedata->fd,"wb9");
+		filedata->compressor_data = COMPRESSOR_OPEN(dup(filedata->fd),"wb9");
 		if (!filedata->compressor_data) {
 			syslog(LOG_ERR,"Failed to do COMPRESSOR_OPEN on fd %d file %s, last errno : %s\n",filedata->fd,filedata->database->filename,strerror(errno));
 			return FAIL;
Binary files FuseCompress.snapshot5/direct_compress.o and FuseCompress/direct_compress.o differ
Binary files FuseCompress.snapshot5/fusecomp and FuseCompress/fusecomp differ
diff -ur FuseCompress.snapshot5/fusecompress.c FuseCompress/fusecompress.c
--- FuseCompress.snapshot5/fusecompress.c	2005-11-23 14:25:04.000000000 +0100
+++ FuseCompress/fusecompress.c	2005-11-23 15:30:58.000000000 +0100
@@ -596,19 +596,12 @@
 	struct stat statbuf;
 	filedata_h *filedata = malloc(sizeof(filedata_h));
 	
-	// DEBUG CHECK: errno = 0;
-	errno = 0;
 	filedata->fd = open(full, fi->flags);
 	if (filedata->fd == -1) {
 		free(filedata);
 		return -errno;
 	}
 	
-	// TEMPORARY CHECK, this causes fstat to fail.... WHY?!?
-	// Filedata isn't added to the database yet, so what the hell else can access this?!?
-	syslog(LOG_DEBUG,"errno set after open : %d, fd : %d, %s\n",errno,filedata->fd,strerror(errno));
-	usleep(20000);
-
 	res = fstat(filedata->fd,&statbuf);
 	if (res == -1) {
 		syslog(LOG_ERR,"fstat on file failed after open was ok!, fd %d, strerror : %s\n",filedata->fd,strerror(errno));
@@ -644,17 +637,6 @@
 	filedata->database = direct_open(full,compressor,filedata);
 	fi->fh = (long)filedata;
 	
-	// Extra temporary check
-		#ifdef DEBUG
-			struct stat tmp;
-			int tmp2 = fstat(filedata->fd,&tmp);
-			if (tmp2 == -1)
-				syslog(LOG_ERR,"FAILED EXTRA CHECK ON %s, %d, strerror : %s\n",filedata->database->filename,filedata->fd,strerror(errno));
-			assert(tmp2 == 0);
-		#endif
-		
-
-
 	UNLOCK_FILEDATA;
 	#endif
 
Binary files FuseCompress.snapshot5/fusecompress.o and FuseCompress/fusecompress.o differ