diff options
author | Sage Weil <sage@newdream.net> | 2009-10-27 14:50:50 -0400 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2009-10-27 14:57:03 -0400 |
commit | 6b8051855d983db8480ff1ea1b02ef2b49203c22 (patch) | |
tree | afb72be534ddd4c474a2ec9b7cf2ea5ab86799bc /fs/ceph/dir.c | |
parent | e53c2fe075feda1fd4f009956ac026dc24c3a199 (diff) |
ceph: allocate and parse mount args before client instance
This simplifies much of the error handling during mount. It also means
that we have the mount args before client creation, and we can initialize
based on those options.
Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/dir.c')
-rw-r--r-- | fs/ceph/dir.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c index 7bb8db524e58..4f7467961b09 100644 --- a/fs/ceph/dir.c +++ b/fs/ceph/dir.c | |||
@@ -225,7 +225,7 @@ static int ceph_readdir(struct file *filp, void *dirent, filldir_t filldir) | |||
225 | int err; | 225 | int err; |
226 | u32 ftype; | 226 | u32 ftype; |
227 | struct ceph_mds_reply_info_parsed *rinfo; | 227 | struct ceph_mds_reply_info_parsed *rinfo; |
228 | const int max_entries = client->mount_args.max_readdir; | 228 | const int max_entries = client->mount_args->max_readdir; |
229 | 229 | ||
230 | dout("readdir %p filp %p frag %u off %u\n", inode, filp, frag, off); | 230 | dout("readdir %p filp %p frag %u off %u\n", inode, filp, frag, off); |
231 | if (fi->at_end) | 231 | if (fi->at_end) |
@@ -479,7 +479,8 @@ struct dentry *ceph_finish_lookup(struct ceph_mds_request *req, | |||
479 | /* .snap dir? */ | 479 | /* .snap dir? */ |
480 | if (err == -ENOENT && | 480 | if (err == -ENOENT && |
481 | ceph_vino(parent).ino != CEPH_INO_ROOT && /* no .snap in root dir */ | 481 | ceph_vino(parent).ino != CEPH_INO_ROOT && /* no .snap in root dir */ |
482 | strcmp(dentry->d_name.name, client->mount_args.snapdir_name) == 0) { | 482 | strcmp(dentry->d_name.name, |
483 | client->mount_args->snapdir_name) == 0) { | ||
483 | struct inode *inode = ceph_get_snapdir(parent); | 484 | struct inode *inode = ceph_get_snapdir(parent); |
484 | dout("ENOENT on snapdir %p '%.*s', linking to snapdir %p\n", | 485 | dout("ENOENT on snapdir %p '%.*s', linking to snapdir %p\n", |
485 | dentry, dentry->d_name.len, dentry->d_name.name, inode); | 486 | dentry, dentry->d_name.len, dentry->d_name.name, inode); |
@@ -550,7 +551,7 @@ static struct dentry *ceph_lookup(struct inode *dir, struct dentry *dentry, | |||
550 | spin_lock(&dir->i_lock); | 551 | spin_lock(&dir->i_lock); |
551 | dout(" dir %p flags are %d\n", dir, ci->i_ceph_flags); | 552 | dout(" dir %p flags are %d\n", dir, ci->i_ceph_flags); |
552 | if (strncmp(dentry->d_name.name, | 553 | if (strncmp(dentry->d_name.name, |
553 | client->mount_args.snapdir_name, | 554 | client->mount_args->snapdir_name, |
554 | dentry->d_name.len) && | 555 | dentry->d_name.len) && |
555 | (ci->i_ceph_flags & CEPH_I_COMPLETE) && | 556 | (ci->i_ceph_flags & CEPH_I_COMPLETE) && |
556 | (__ceph_caps_issued_mask(ci, CEPH_CAP_FILE_SHARED, 1))) { | 557 | (__ceph_caps_issued_mask(ci, CEPH_CAP_FILE_SHARED, 1))) { |