[LU-139] starting 2.6.38 DCACHE_LUSTRE_INVALID conflicts with DCACHE_OP_REVALIDATE Created: 17/Mar/11  Updated: 25/Mar/11  Resolved: 24/Mar/11

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.0.0
Fix Version/s: Lustre 2.1.0

Type: New Feature Priority: Major
Reporter: Johann Lombardi (Inactive) Assignee: Johann Lombardi (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Rank (Obsolete): 5092

 Description   

2.6.38 comes with a bunch of new dentry flags and one of them conflicts with our DCACHE_LUSTRE_INVALID:

From lustre/llite/llite_internal.h:

#ifndef DCACHE_LUSTRE_INVALID
#define DCACHE_LUSTRE_INVALID 0x4000
#endif

From include/linux/dcache.h:

#define DCACHE_OP_HASH 0x1000
#define DCACHE_OP_COMPARE 0x2000
#define DCACHE_OP_REVALIDATE 0x4000
#define DCACHE_OP_DELETE 0x8000

Those flags were introduced by the following commit:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fb045adb99d9b7c562dc7fef834857f78249daa1

I'm not sure when we will jump to 2.6.38, but this is definitely something to keep in mind ...



 Comments   
Comment by Andreas Dilger [ 17/Mar/11 ]

For patchless client kernels the DCACHE_LUSTRE_INVALID flag is only used internal to the Lustre client code. For patched kernels, we control the patches. I believe that the vfs-races patch has been removed from the RHEL6 patch series already.

I don't think there is much concern with just changing the value above in the llite code and in our limited VFS patches. If the kernel defines some other value, that will be used, and as long as we #define a non-conflicting value before the 2.6.38 kernel is supported there should be no problem.

Comment by Oleg Drokin [ 17/Mar/11 ]

We can as wel preemptively change our define now, it's used only internally on the client and so it's protocol safe.

Comment by Johann Lombardi (Inactive) [ 17/Mar/11 ]

Sure, that's what i intend to do.

Comment by Build Master (Inactive) [ 17/Mar/11 ]

Integrated in reviews-centos5 #494
LU-139 move DCACHE_LUSTRE_INVALID to higher bit to prevent conflict with other dentry flags

Johann Lombardi : 4207c5cd1fb05b4e1432387f9904858aea7e9f30
Files :

  • lustre/llite/llite_internal.h
Comment by Build Master (Inactive) [ 24/Mar/11 ]

Integrated in lustre-master-centos5 #160
LU-139 move DCACHE_LUSTRE_INVALID to higher bit to prevent conflict with other dentry flags

Oleg Drokin : 1351d2b46e7913ef367a727f3648818ab3043cba
Files :

  • lustre/llite/llite_internal.h
Comment by Johann Lombardi (Inactive) [ 24/Mar/11 ]

Fix merged.

Comment by Build Master (Inactive) [ 25/Mar/11 ]

Integrated in lustre-master » x86_64,ubuntu #13
LU-139 move DCACHE_LUSTRE_INVALID to higher bit to prevent conflict with other dentry flags

Brian J. Murrell : ef21c505876fc907a7891af86801d798ccc354a2
Files :

  • lustre/llite/llite_internal.h
Comment by Build Master (Inactive) [ 25/Mar/11 ]

Integrated in lustre-master » x86_64,el6 #13
LU-139 move DCACHE_LUSTRE_INVALID to higher bit to prevent conflict with other dentry flags

Brian J. Murrell : ef21c505876fc907a7891af86801d798ccc354a2
Files :

  • lustre/llite/llite_internal.h
Generated at Sat Feb 10 01:04:08 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.