summaryrefslogtreecommitdiff
path: root/src/mds/CInode.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mds/CInode.h')
-rw-r--r--src/mds/CInode.h83
1 files changed, 11 insertions, 72 deletions
diff --git a/src/mds/CInode.h b/src/mds/CInode.h
index b28fe58065f..15d9493f53d 100644
--- a/src/mds/CInode.h
+++ b/src/mds/CInode.h
@@ -63,32 +63,6 @@ struct cinode_lock_info_t {
extern cinode_lock_info_t cinode_lock_info[];
extern int num_cinode_locks;
-/**
- * Default file layout stuff. This lets us set a default file layout on
- * a directory inode that all files in its tree will use on creation.
- */
-struct default_file_layout {
-
- ceph_file_layout layout;
-
- void encode(bufferlist &bl) const {
- __u8 struct_v = 1;
- ::encode(struct_v, bl);
- ::encode(layout, bl);
- }
-
- void decode(bufferlist::iterator& bl) {
- __u8 struct_v;
- ::decode(struct_v, bl);
- if (struct_v != 1) { //uh-oh
- dout(0) << "got default layout I don't understand!" << dendl;
- assert(0);
- }
- ::decode(layout, bl);
- }
-};
-WRITE_CLASS_ENCODER(default_file_layout);
-
// cached inode wrapper
class CInode : public MDSCacheObject {
@@ -237,8 +211,6 @@ public:
//bool hack_accessed;
//utime_t hack_load_stamp;
- default_file_layout *default_layout;
-
/**
* Projection methods, used to store inode changes until they have been journaled,
* at which point they are popped.
@@ -256,14 +228,13 @@ public:
inode_t *inode;
map<string,bufferptr> *xattrs;
sr_t *snapnode;
- default_file_layout *dir_layout;
-
- projected_inode_t() : inode(NULL), xattrs(NULL), snapnode(NULL), dir_layout(NULL) {}
- projected_inode_t(inode_t *in, sr_t *sn) : inode(in), xattrs(NULL), snapnode(sn),
- dir_layout(NULL) {}
- projected_inode_t(inode_t *in, map<string, bufferptr> *xp = NULL, sr_t *sn = NULL,
- default_file_layout *dl = NULL) :
- inode(in), xattrs(xp), snapnode(sn), dir_layout(dl) {}
+
+ projected_inode_t()
+ : inode(NULL), xattrs(NULL), snapnode(NULL) {}
+ projected_inode_t(inode_t *in, sr_t *sn)
+ : inode(in), xattrs(NULL), snapnode(sn) {}
+ projected_inode_t(inode_t *in, map<string, bufferptr> *xp = NULL, sr_t *sn = NULL)
+ : inode(in), xattrs(xp), snapnode(sn) {}
};
list<projected_inode_t*> projected_nodes; // projected values (only defined while dirty)
@@ -277,19 +248,6 @@ public:
return projected_nodes.back();
}
- ceph_file_layout *get_projected_dir_layout() {
- if (!inode.is_dir()) return NULL;
- if (projected_nodes.empty()) {
- if (default_layout)
- return &default_layout->layout;
- else
- return NULL;
- }
- else if (projected_nodes.back()->dir_layout)
- return &projected_nodes.back()->dir_layout->layout;
- else return NULL;
- }
-
version_t get_projected_version() {
if (projected_nodes.empty())
return inode.version;
@@ -463,7 +421,6 @@ private:
snaprealm(0), containing_realm(0),
first(f), last(l),
last_journaled(0), //last_open_journaled(0),
- default_layout(NULL),
//hack_accessed(true),
stickydir_ref(0),
parent(0),
@@ -574,7 +531,7 @@ private:
unsigned encode_parent_mutation(ObjectOperation& m);
void encode_store(bufferlist& bl) {
- __u8 struct_v = 2;
+ __u8 struct_v = 3;
::encode(struct_v, bl);
::encode(inode, bl);
if (is_symlink())
@@ -585,11 +542,6 @@ private:
encode_snap_blob(snapbl);
::encode(snapbl, bl);
::encode(old_inodes, bl);
- if (inode.is_dir()) {
- ::encode((default_layout ? true : false), bl);
- if (default_layout)
- ::encode(*default_layout, bl);
- }
}
void decode_store(bufferlist::iterator& bl) {
__u8 struct_v;
@@ -603,12 +555,12 @@ private:
::decode(snapbl, bl);
decode_snap_blob(snapbl);
::decode(old_inodes, bl);
- if (struct_v >= 2 && inode.is_dir()) {
+ if (struct_v == 2 && inode.is_dir()) {
bool default_layout_exists;
::decode(default_layout_exists, bl);
if (default_layout_exists) {
- default_layout = new default_file_layout;
- ::decode(*default_layout, bl);
+ ::decode(struct_v, bl);
+ ::decode(inode.layout, bl);
}
}
}
@@ -625,11 +577,6 @@ private:
_encode_base(bl);
_encode_locks_state_for_replica(bl);
- if (inode.is_dir()) {
- ::encode((default_layout ? true : false), bl);
- if (default_layout)
- ::encode(*default_layout, bl);
- }
}
void decode_replica(bufferlist::iterator& p, bool is_new) {
__u32 nonce;
@@ -638,14 +585,6 @@ private:
_decode_base(p);
_decode_locks_state(p, is_new);
- if (inode.is_dir()) {
- bool default_layout_exists;
- ::decode(default_layout_exists, p);
- if (default_layout_exists) {
- default_layout = new default_file_layout;
- ::decode(*default_layout, p);
- }
- }
}