diff options
author | Raghavendra G <raghavendra@zresearch.com> | 2009-04-22 07:32:30 -0700 |
---|---|---|
committer | Anand V. Avati <avati@amp.gluster.com> | 2009-04-23 10:41:56 +0530 |
commit | 7a77bad6d583ee9266e6e3f566bf19d579177e3e (patch) | |
tree | 84f9e506970ced8f4a9d300cf56c8ed542c71309 | |
parent | e26b63ccfc3aa0b29afb7235b863b7b4a7c8ae95 (diff) |
mod_glusterfs: port apache/1.3/mod_glusterfs to use virtual mount points
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
-rw-r--r-- | mod_glusterfs/apache/1.3/src/mod_glusterfs.c | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/mod_glusterfs/apache/1.3/src/mod_glusterfs.c b/mod_glusterfs/apache/1.3/src/mod_glusterfs.c index 5970336c9..03026eac8 100644 --- a/mod_glusterfs/apache/1.3/src/mod_glusterfs.c +++ b/mod_glusterfs/apache/1.3/src/mod_glusterfs.c @@ -52,7 +52,6 @@ typedef struct glusterfs_dir_config { char *buf; size_t xattr_file_size; uint32_t cache_timeout; - glusterfs_handle_t handle; } glusterfs_dir_config_t; typedef struct glusterfs_async_local { @@ -144,7 +143,6 @@ mod_glusterfs_create_dir_config(pool *p, char *dirspec) dir_config->mount_dir = dirspec; dir_config->logfile = dir_config->specfile = (char *)0; dir_config->loglevel = "warning"; - dir_config->handle = (glusterfs_handle_t) 0; dir_config->cache_timeout = 0; dir_config->buf = NULL; @@ -175,7 +173,7 @@ mod_glusterfs_child_init(server_rec *s, pool *p) params.stat_timeout = dir_config->cache_timeout; params.specfile = dir_config->specfile; - dir_config->handle = glusterfs_init (¶ms); + glusterfs_mount (dir_config->mount_dir, ¶ms); } dir_config = NULL; } @@ -194,11 +192,9 @@ mod_glusterfs_child_exit(server_rec *s, pool *p) urls = (void **)mod_core_config->sec_url->elts; for (i = 0; i < n; i++) { dir_config = ap_get_module_config (urls[i], &glusterfs_module); - if (dir_config && dir_config->handle) { - glusterfs_fini (dir_config->handle); - dir_config->handle = 0; + if (dir_config) { + glusterfs_umount (dir_config->mount_dir); } - dir_config = NULL; } } @@ -222,8 +218,7 @@ static int mod_glusterfs_fixup(request_rec *r) GLUSTERFS_HANDLER))) return DECLINED; - if (dir_config->mount_dir) - path = r->uri + strlen (dir_config->mount_dir); + path = r->uri; memset (&r->finfo, 0, sizeof (r->finfo)); @@ -232,7 +227,7 @@ static int mod_glusterfs_fixup(request_rec *r) return HTTP_INTERNAL_SERVER_ERROR; } - ret = glusterfs_get (dir_config->handle, path, dir_config->buf, + ret = glusterfs_get (path, dir_config->buf, dir_config->xattr_file_size, &r->finfo); if (ret == -1 || r->finfo.st_size > dir_config->xattr_file_size @@ -387,12 +382,6 @@ mod_glusterfs_handler(request_rec *r) return METHOD_NOT_ALLOWED; } - if (!dir_config->handle) { - ap_log_rerror (APLOG_MARK, APLOG_ERR, r, - "glusterfs initialization failed\n"); - return FORBIDDEN; - } - ap_update_mtime(r, r->finfo.st_mtime); ap_set_last_modified(r); ap_set_etag(r); @@ -434,8 +423,8 @@ mod_glusterfs_handler(request_rec *r) return error; } - path = r->uri + strlen (dir_config->mount_dir); - fd = glusterfs_open (dir_config->handle, path , O_RDONLY, 0); + path = r->uri; + fd = glusterfs_open (path , O_RDONLY, 0); if (fd == 0) { ap_log_rerror(APLOG_MARK, APLOG_ERR, r, @@ -475,7 +464,7 @@ static const command_rec mod_glusterfs_cmds[] = "Glusterfs Specfile required to access contents of this directory"}, {"GlusterfsXattrFileSize", add_xattr_file_size, NULL, GLUSTERFS_CMD_PERMS, TAKE1, - "Maximum size of the file to be fetched using xattr interface of "\ + "Maximum size of the file to be fetched using xattr interface of " "glusterfs"}, {NULL} }; |