RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 853146 - fuse: sync driver with upstream
Summary: fuse: sync driver with upstream
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: kernel
Version: 6.5
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Brian Foster
QA Contact: Red Hat Kernel QE team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-08-30 15:19 UTC by Brian Foster
Modified: 2015-11-10 14:49 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-11-10 14:49:57 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Brian Foster 2012-08-30 15:19:49 UTC
This is a place holder to track updating RHEL fuse from upstream. I don't know that we have specific feature requirements/requests quite yet, but the RHEL6 implementation is generally behind (which makes selective backports more difficult) and Red Hat Storage introduces a strong dependency on fuse. Setting a target for RHEL6.5 as this is the likely base for RHS2.1.

Comment 2 Brian Foster 2012-09-04 14:36:54 UTC
Comments from Csaba Henk on the breakdown of work:

I think to support a feature that comes with the latest
version of the FUSE protocol there is no other correct
way but implement all features up to that proto revision.
It would be hard to argue with, FUSE having adopted
a simple (theoretically two, practically one level)
linear numeric versioning scheme.

In general, let me categorize protocol updates as follows,
with respect to complexity of adjusting an implementation
to work with the update:

0: no action needed, as the update introduces a completely
    optional extension (aka. conservative extension)
1: a stub is to be provided / data layout is to be adjusted
2: the adjustment requires a proper implementation, which
    is easy
3: the adjustment requires a proper implementation, which
    is a significant development effort

We can enhance this simple four level system as follows:

- For the cases which require proper implementation (2, 3), allow
   not just these two values, but any number in between, according
   to the hardness of the implementation. (We could also use values
   beyond 3, to express situation where the implementation necessitates
   a heroic effort or there is a show stopper, but we don't need
   that here -- 3 is still meant to stand for a reasonable amount of work,
   and that covers our cases.)
- For the "stub suffices" cases (0, 1), let's have the p/q notation,
   where p is one of 0,1, and q is a value between 2 and 3. p is
   meant as above, q means the complexity of the (optional) proper
   implementation. We provide the "/q" part only if the feature
   in question is seen useful.

Let me annotate the 7.13+ FUSE proto changelog along these lines,
regarding the glusterfs side.

         7.14
0/3   :  - add splice support to fuse device
        0/2.5 : 7.15
          - add store notify
          - add retrieve notify
                 7.16
2     :  - add BATCH_FORGET request
0     :  - FUSE_IOCTL_UNRESTRICTED shall now return with array of 'struct
            fuse_ioctl_iovec' instead of ambiguous 'struct iovec'
0     :  - add FUSE_IOCTL_32BIT flag
                 7.17
1/2.5 :  - add FUSE_FLOCK_LOCKS and FUSE_RELEASE_FLOCK_UNLOCK
                 7.18
0     :  - add FUSE_IOCTL_DIR flag
0/2.5 :  - add FUSE_NOTIFY_DELETE
                 7.19
1/2   :  - add FUSE_FALLOCATE
                 7.20
0/2   :  - add FUSE_AUTO_INVAL_DATA

That is, to catch up to 7.20 with glusterfs, the only non-trivial thing to
do is to implement BATCH_FORGET, but that's not hard, and indeed,
quite useful (I think it would give some performance gain for small files).

   * * *

Other thing we need to know is the complexity of the proto upgrades
on kernel side. That's a different beast, because the implementations
for these upgrades are factually there, what we have to face with are
possible compatibility issues upon backporting them. For a cursory
glance, I did not seen anything that would stick out as a problematic
backport.

Regarding a non-cursory glance, I have a technical problem. Simply
I don't know what the RHEL kernel is, what backports it has already (eg.
I'm sure it has FUSE direct I/O support in, which is also a 7.13+
commit in upstream...). I'm quite noob to the RH engineering tools,
I'd be grateful for any pointer to useful resources or a primer.

Csaba

Comment 3 Ric Wheeler 2012-09-05 15:08:22 UTC
I think that we do need to keep in sync with upstream as best as we can in RHEL - this is critical for RHS and other user space file systems.


Note You need to log in before you can comment on or make changes to this bug.