On Tue, 12 Apr 2016 09:52:00 +0200 Michael Fritscher <mich...@fritscher.net> wrote:
> It was tested on Windows & Linux hosts, on the later no obvious regressions > could be found. The guest was a Knoppix 7.6.0 live cd. > > This is WIP and a RFC - it isn't meant to be upstreamed yet. The error_printf > are only for debugging and will be deleted in the final patch. > > There are some comments with "mifritscher" - I'm not quite sure how to handle > these problems (e.g. on mingw, this in 32 bit, while on Linux this is 16 bit > and so on). Additionally, some places from which I suspect problems are > marked with a #warning. > > Changes against v1: > * fixed open (added binary flag) -> read/write is fine now, file > creation was fixed as well > * added inode calculation using own crude hash algorithm > * fixed xattr returning -1 + EOPNOTSUP -> fixes e.g. executing files > * fixed unlinkat / remove für directories by trying rmdir as well > * prepend 777 mode on files (for executing) > > What does work: > * reading/writing "big" files (5MB, verified with md5sum) > * creating files > * executing files > * mkdir > * rm / rmdir > * cp files > * running gcc > * cp first 250 files & directories from /etc > * tar it from and to the 9p mount > * create a 100 MB swap file and do a mkswap on it > > What does not work: > * swapon - no real surprise (doesn't work on Linux as well - with the same > error message) ;-) (swapon returns -1 EINVAL) > * link / symlink (there is no real aequivalent for this on windows) > * mknod (dito) > * chown (dito - prepend success for compatibility) > > State of v1: > What works: > * mount > * stat > * chdir > * readdir (aka ls) > * read of small files (<10k) > * overwrite > > What does not work: > * create new files (in 90% problems with path handling (old path occurs) > * read / probably write big files > > > Signed-off-by: Michael Fritscher <mich...@fritscher.net> > --- > On https://github.com/mifritscher/qemu/tree/9pfs_windows is a git tree with > the patch. > > I gave a shot at xattr (try to include xattr stuff) but it ended up even more > #ifdefs. So I gave up at this. > Now I'm waiting on comments etc. If there are no big objections, I'll remove > the debug output and make a patch which is meant for upstreaming. > > Thanks to everybody which helped me! > Hi Michael ! Impressive work ! :) Since this is a big patch, it will take probably some time for me to review. I'll comment on easy stuff first, and probably send more emails when I get time to go deeper. Anyway, this is a new feature and it won't go upstream until 2.6 is out. Cheers. -- Greg