* Initialize fuse_config before parsing the arguments.
* Implemented fuse_is_lib_option() more correctly. * Actually use the value of the "use_ino" option. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29871 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
3093705388
commit
a773113804
@ -243,6 +243,8 @@ FUSEFileSystem::FinishInitClientFS(fuse_config* config,
|
|||||||
PRINT(("FUSEFileSystem::FinishInitClientFS()\n"));
|
PRINT(("FUSEFileSystem::FinishInitClientFS()\n"));
|
||||||
fExitStatus = B_ERROR;
|
fExitStatus = B_ERROR;
|
||||||
|
|
||||||
|
fFUSEConfig = *config;
|
||||||
|
|
||||||
// do the initialization
|
// do the initialization
|
||||||
status_t error = _InitClientFS(ops, opSize, userData);
|
status_t error = _InitClientFS(ops, opSize, userData);
|
||||||
|
|
||||||
|
@ -8,9 +8,7 @@
|
|||||||
#include "../FileSystem.h"
|
#include "../FileSystem.h"
|
||||||
|
|
||||||
#include "fuse_api.h"
|
#include "fuse_api.h"
|
||||||
|
#include "fuse_config.h"
|
||||||
|
|
||||||
struct fuse_config;
|
|
||||||
|
|
||||||
|
|
||||||
namespace UserlandFS {
|
namespace UserlandFS {
|
||||||
@ -35,6 +33,8 @@ public:
|
|||||||
|
|
||||||
fuse_fs* GetFS() const { return fFS; }
|
fuse_fs* GetFS() const { return fFS; }
|
||||||
|
|
||||||
|
const fuse_config& GetFUSEConfig() const { return fFUSEConfig; }
|
||||||
|
|
||||||
virtual status_t CreateVolume(Volume** _volume, dev_t id);
|
virtual status_t CreateVolume(Volume** _volume, dev_t id);
|
||||||
virtual status_t DeleteVolume(Volume* volume);
|
virtual status_t DeleteVolume(Volume* volume);
|
||||||
|
|
||||||
@ -68,6 +68,7 @@ private:
|
|||||||
const char* fInitParameters;
|
const char* fInitParameters;
|
||||||
fuse_fs* fFS;
|
fuse_fs* fFS;
|
||||||
fuse_conn_info fConnectionInfo;
|
fuse_conn_info fConnectionInfo;
|
||||||
|
fuse_config fFUSEConfig;
|
||||||
|
|
||||||
FSVolumeCapabilities fVolumeCapabilities;
|
FSVolumeCapabilities fVolumeCapabilities;
|
||||||
FSVNodeCapabilities fNodeCapabilities;
|
FSVNodeCapabilities fNodeCapabilities;
|
||||||
|
@ -670,6 +670,9 @@ printf("FUSEVolume::Mount()\n");
|
|||||||
fFS = _FileSystem()->GetFS();
|
fFS = _FileSystem()->GetFS();
|
||||||
_FileSystem()->GetVolumeCapabilities(fCapabilities);
|
_FileSystem()->GetVolumeCapabilities(fCapabilities);
|
||||||
|
|
||||||
|
const fuse_config& config = _FileSystem()->GetFUSEConfig();
|
||||||
|
fUseNodeIDs = config.use_ino;
|
||||||
|
|
||||||
// get the root node
|
// get the root node
|
||||||
struct stat st;
|
struct stat st;
|
||||||
int fuseError = fuse_fs_getattr(fFS, "/", &st);
|
int fuseError = fuse_fs_getattr(fFS, "/", &st);
|
||||||
|
@ -65,3 +65,11 @@ fuse_parse_config_args(struct fuse_args* args, struct fuse_config* config)
|
|||||||
{
|
{
|
||||||
return fuse_opt_parse(args, config, fuse_lib_opts, fuse_lib_opt_proc) == 0;
|
return fuse_opt_parse(args, config, fuse_lib_opts, fuse_lib_opt_proc) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
fuse_is_lib_option(const char* opt)
|
||||||
|
{
|
||||||
|
return /*fuse_lowlevel_is_lib_option(opt) ||*/
|
||||||
|
fuse_opt_match(fuse_lib_opts, opt);
|
||||||
|
}
|
||||||
|
@ -3,8 +3,7 @@
|
|||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define FUSE_USE_VERSION FUSE_VERSION
|
#include <signal.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "fuse_api.h"
|
#include "fuse_api.h"
|
||||||
@ -21,7 +20,14 @@ userData);
|
|||||||
|
|
||||||
// parse args
|
// parse args
|
||||||
struct fuse_args args = FUSE_ARGS_INIT(argc, argv);
|
struct fuse_args args = FUSE_ARGS_INIT(argc, argv);
|
||||||
|
|
||||||
fuse_config config;
|
fuse_config config;
|
||||||
|
memset(&config, 0, sizeof(config));
|
||||||
|
config.entry_timeout = 1.0;
|
||||||
|
config.attr_timeout = 1.0;
|
||||||
|
config.negative_timeout = 0.0;
|
||||||
|
config.intr_signal = SIGUSR1;
|
||||||
|
|
||||||
bool success = fuse_parse_config_args(&args, &config);
|
bool success = fuse_parse_config_args(&args, &config);
|
||||||
fuse_opt_free_args(&args);
|
fuse_opt_free_args(&args);
|
||||||
|
|
||||||
@ -37,15 +43,6 @@ userData);
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
|
||||||
fuse_is_lib_option(const char* opt)
|
|
||||||
{
|
|
||||||
printf("fuse_is_lib_option(\"%s\")\n", opt);
|
|
||||||
// TODO: Implement!
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
fuse_version(void)
|
fuse_version(void)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user