file_stripe_count = 0;
object_size = 0;
file_replication = 0;
+ preferred_pg = 0;
//
root = 0;
req->head.args.open.stripe_count = file_stripe_count;
req->head.args.open.object_size = object_size;
req->head.args.open.file_replication = file_replication;
+ req->head.args.open.preferred = preferred_pg;
req->dentry_drop = CEPH_CAP_FILE_SHARED;
req->dentry_unless = CEPH_CAP_FILE_EXCL;
file_replication = replication;
}
+void Client::set_default_preferred_pg(int pg)
+{
+ preferred_pg = pg;
+}
+
int Client::describe_layout(int fd, ceph_file_layout *lp)
{
Mutex::Locker lock(client_lock);
return osdmap->get_pg_pool(pool).get_size();
}
+int Client::get_default_preferred_pg(int fd)
+{
+ ceph_file_layout layout;
+ describe_layout(fd, &layout);
+ return ceph_file_layout_pg_preferred(layout);
+}
+
int Client::get_file_stripe_address(int fd, loff_t offset, string& address)
{
Mutex::Locker lock(client_lock);
int file_stripe_count;
int object_size;
int file_replication;
+ int preferred_pg;
public:
entity_name_t get_myname() { return messenger->get_myname(); }
void sync_write_commit(Inode *in);
int get_file_replication(int fd);
int get_file_stripe_address(int fd, loff_t offset, string& address);
int get_local_osd();
+ int get_default_preferred_pg(int fd);
void set_default_file_stripe_unit(int stripe_unit);
void set_default_file_stripe_count(int count);
void set_default_object_size(int size);
void set_default_file_replication(int replication);
+ void set_default_preferred_pg(int pg);
int enumerate_layout(int fd, vector<ObjectExtent>& result,
loff_t length, loff_t offset);
return rep;
}
+extern "C" int ceph_get_default_preferred_pg(int fd)
+{
+ return client->get_default_preferred_pg(fd);
+}
+
extern "C" int ceph_set_default_file_stripe_unit(int stripe)
{
client->set_default_file_stripe_unit(stripe);
return 0;
}
+extern "C" int ceph_set_default_preferred_pg(int pg)
+{
+ client->set_default_preferred_pg(pg);
+ return 0;
+}
+
extern "C" int ceph_get_file_stripe_address(int fh, loff_t offset, char *buf, int buflen)
{
string address;
int ceph_umount();
int ceph_statfs(const char *path, struct statvfs *stbuf);
+int ceph_get_local_osd();
int ceph_getcwd(char *buf, int buflen);
int ceph_chdir(const char *s);
int ceph_sync_fs();
int ceph_get_file_stripe_unit(int fh);
int ceph_get_file_replication(const char *path);
+int ceph_get_default_preferred_pg(int fd);
int ceph_get_file_stripe_address(int fd, loff_t offset, char *buf, int buflen);
int ceph_set_default_file_stripe_unit(int stripe);
int ceph_set_default_file_stripe_count(int count);
int ceph_set_default_object_size(int size);
int ceph_set_default_file_replication(int replication);
+int ceph_set_default_preferred_pg(int pg);
}
#endif