From: Akira Y. <yo...@de...> - 2005-12-17 03:34:49
|
Hi, On Thu, 08 Dec 2005 12:24:21 +0100 Miklos Szeredi <mi...@sz...> wrote: > Hello, > > > I made a patch to add encoding conversion of file/directory names to FUSE. > > It will be useful various filesystems based FUSE, especially for persons > > without english. I attached my patch. Please try it. > > Thank you very much for your contribution. I have a few comments: > > Would it not be better to perform the conversion in the low-level > interface? That would affect much fewer operations (12 instead of > 30), and would have better performance. > > Also I'd very much like to have a generic stacking interface for FUSE > (both for the low and high level libraries), so that other features > like this may be added in the future, without needing to modify the > core code. The interface is not yet clear in my mind, and I'd be > happy to have a discussion about this. I have considered your comments, and now I think that my current approach is one of the best implementation. There are two reasons. a) lowlevel operations encapsulate requests and file/directory name infomation is in them. If we do file/directory name conversion in lowlevel operations, we will need to rewrite request structure. I don't think that is so beautiful. b) it's a stacking structure like you said, and a good way for minimum change. For example, see below: - the original FUSE path fuse_ll_process() -> do_open() -> fuse_open() -> f->op.open() - FUSE i18n path disabled i18n feature(without bcode/fcode options) fuse_ll_process() -> do_open() -> fuse_open() -> f->op.open() (same as the original. no change) - FUSE i18n path enabled i18n feature(with bcode/fcode options) fuse_ll_process() -> do_open() -> fuse_open() ->F->op.open()-> f->op.open() (F->op = FUSE i18n operations: API compatible to f->op) Welcome comments. Thank you. Best regards, A.YOSHIYAMA <yo...@de...> p.s. I want a mutex structure for struct fuse_operations. |