libceph, rbd, ceph: convert to use the new mount API
Convert the ceph filesystem to the new internal mount API as the old one will be obsoleted and removed. This allows greater flexibility in communication of mount parameters between userspace, the VFS and the filesystem. See Documentation/filesystems/mount_api.txt for more information. [ Numerous string handling, leak and regression fixes; rbd conversion was particularly broken and had to be redone almost from scratch. ] Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
committed by
Ilya Dryomov
parent
196e2d6d02
commit
82995cc6c5
+5
-4
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <linux/ceph/ceph_debug.h>
|
||||
|
||||
#include <linux/fs_context.h>
|
||||
#include "super.h"
|
||||
#include "cache.h"
|
||||
|
||||
@@ -49,7 +50,7 @@ void ceph_fscache_unregister(void)
|
||||
fscache_unregister_netfs(&ceph_cache_netfs);
|
||||
}
|
||||
|
||||
int ceph_fscache_register_fs(struct ceph_fs_client* fsc)
|
||||
int ceph_fscache_register_fs(struct ceph_fs_client* fsc, struct fs_context *fc)
|
||||
{
|
||||
const struct ceph_fsid *fsid = &fsc->client->fsid;
|
||||
const char *fscache_uniq = fsc->mount_options->fscache_uniq;
|
||||
@@ -66,8 +67,8 @@ int ceph_fscache_register_fs(struct ceph_fs_client* fsc)
|
||||
if (uniq_len && memcmp(ent->uniquifier, fscache_uniq, uniq_len))
|
||||
continue;
|
||||
|
||||
pr_err("fscache cookie already registered for fsid %pU\n", fsid);
|
||||
pr_err(" use fsc=%%s mount option to specify a uniquifier\n");
|
||||
errorf(fc, "ceph: fscache cookie already registered for fsid %pU, use fsc=<uniquifier> option",
|
||||
fsid);
|
||||
err = -EBUSY;
|
||||
goto out_unlock;
|
||||
}
|
||||
@@ -95,7 +96,7 @@ int ceph_fscache_register_fs(struct ceph_fs_client* fsc)
|
||||
list_add_tail(&ent->list, &ceph_fscache_list);
|
||||
} else {
|
||||
kfree(ent);
|
||||
pr_err("unable to register fscache cookie for fsid %pU\n",
|
||||
errorf(fc, "ceph: unable to register fscache cookie for fsid %pU",
|
||||
fsid);
|
||||
/* all other fs ignore this error */
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user