atomic<uint32_t> RGWLibFS::fs_inst;
+
+#define RGW_RWXMODE (S_IRWXU | S_IRWXG | S_IRWXO)
+
+#define RGW_RWMODE (RGW_RWXMODE & \
+ ~(S_IXUSR | S_IXGRP | S_IXOTH))
+
+
/* librgw */
extern "C" {
/* mark if we created it */
- if (get<1>(fhr) & RGWFileHandle::FLAG_CREATE)
+ if (get<1>(fhr) & RGWFileHandle::FLAG_CREATE) {
+ /* fill in stat data */
+ time_t now = time(0);
+ memset(st, 0, sizeof(struct stat));
+ st->st_dev = fs->get_inst();
+ st->st_ino = rgw_fh->get_fh()->fh_hk.object; // XXX
+ st->st_mode = RGW_RWMODE|S_IFREG;
+ st->st_nlink = 1;
+ st->st_uid = 0; // XXX
+ st->st_gid = 0; // XXX
+ st->st_size = 0;
+ st->st_blksize = 4096;
+ st->st_blocks = 0;
+ st->st_atim.tv_sec = now;
+ st->st_mtim.tv_sec = now;
+ st->st_ctim.tv_sec = now;
rgw_fh->open_for_create();
+ }
struct rgw_file_handle *rfh = rgw_fh->get_fh();
*fh = rfh;
return 0;
}
-#define RGW_RWXMODE (S_IRWXU | S_IRWXG | S_IRWXO)
-
-#define RGW_RWMODE (RGW_RWXMODE & \
- ~(S_IXUSR | S_IXGRP | S_IXOTH))
-
/*
get unix attributes for object
*/