-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for statvfs() to FUSE #3304
base: devel
Are you sure you want to change the base?
Conversation
Some desktop environments are now checking for free space before copying files to a destination. To support this, the FUSE filesystem needs to convert the statvfs() system call to the relevent PDUs from [MS-RDPEFS]
A screenshot from a remote session with a 119GB C: drive and a 5MB E: drive passed through:-
Because we only use a single mountpoint for the remote client (with all the drives underneath), the xrdp session is unable to distinguish between them - it just sees the mount on Firefox and Dolphin seem OK with this (as they presumably run Update: Even with some fake diskspace added, chromium on Fedora 41 won't let me save anything. This needs further investigation. |
On my old testing platform, there was a similar issue: "Chromium cannot browse to the C: drive." Effective solutions: This time, a new platform was built for testing, and the operating system was updated. A similar phenomenon was discovered. However, the Microsoft Edge for Linux browser (chromium 130) does not have this issue! Adding the following code did not change the phenomenon:
minor issue that does not affect usability.:
Test environment: Deepin Debian Linux + wfreerdp and xfreerdp client(maybe freerdp issue).
|
There is a fuse mount situation that I am unsure if it is relevant: When the system enables namespaces and removes dbus-user-session, the operating system and browser can access thinclient_drives normally. However, when the system enables namespaces and uses dbus-user-session, Feedback from the operating system developers is as follows: The suggested workaround is to try executing the mount operation through user services. |
Thanks @tsz8899 Do you know what version of xfreerdp your wfreerdp client is built with? I've just tried with xfreerdp 3.7 from a Linux machine and the results seem correct. The environment you are describing (mount namespaces and monitoring on a desktop) is unfamiliar to me. Is this a Deepin-specific feature? My own issue with chromium on Fedora41 is different, and not namespace related. If I browse to the thinclient directory and open the save dialog box (say for an iso image), chromium starts downloading the file to the directory in a hidden file:- $ ls -lah ~/thinclient_drives/_home_mj/ . . . total 0 -rw-------. 1 testuser testuser 379M Nov 11 10:59 .org.chromium.Chromium.YSyVe4 However, the Save button is still greyed out. |
Just found my Chromium problem - Chromium wants |
Chromium 130 won't save to our filesystem if we don't return a max filename length. Dummy parameters were tried for inode counts, but these do not seem to be necessary. Not also that btrfs foes not return values for these fields.
e3b62fd
to
6a49ff9
Compare
Fixes #3300
See also #3246
Some desktop environments are now checking for free space before copying files to a destination.
To support this, the FUSE filesystem needs to convert the
statfs()
/statvfs()
system call to the relevant PDUs from [MS-RDPEFS]Draft for now - I'd really appreciate comments from @tsz8899 (if possible).
Edit 24-10-14 : No longer draft