typedef struct {
/* Perform all get/put operations synchronously. */
int synchronous_stores;
+
+ /* Write data in cache immediately after file is modified. */
+ int writethrough_cache;
} BlueSkyOptions;
extern BlueSkyOptions bluesky_options;
g_thread_init(NULL);
bluesky_crypt_init();
- //bluesky_options.synchronous_stores = 1;
+ bluesky_options.synchronous_stores = 1;
+ bluesky_options.writethrough_cache = 1;
bluesky_store_init();
bluesky_store_init_s3();
if (inode->change_time == 0)
inode->change_time = now;
+
+ if (bluesky_options.writethrough_cache)
+ bluesky_file_flush(inode, NULL);
}
/* Unfortunately a glib hash table is only guaranteed to be able to store
info->success = 1;
}
- if (errorDetails != NULL) {
+ if (errorDetails != NULL && errorDetails->message != NULL) {
g_print(" Error message: %s\n", errorDetails->message);
}
}
#include <sys/socket.h>
#include <netinet/in.h>
+#include "bluesky.h"
+extern BlueSkyFS *fs;
+
static void
mount_program_3(struct svc_req *rqstp, register SVCXPRT *transp)
{
fprintf (stderr, "%s", "unable to free arguments");
exit (1);
}
+
+ bluesky_flushd_invoke(fs);
+
return;
}