Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 308127 Details for
Bug 411173
sys-cluster/orangefs-2.8.5 - a branch of the PVFS2 cluster filesystem
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
orangefs-2.8.5-linux-3.2.patch
orangefs-2.8.5-linux-3.2.patch (text/plain), 5.96 KB, created by
Andrew Savchenko
on 2012-04-07 17:53:42 UTC
(
hide
)
Description:
orangefs-2.8.5-linux-3.2.patch
Filename:
MIME Type:
Creator:
Andrew Savchenko
Created:
2012-04-07 17:53:42 UTC
Size:
5.96 KB
patch
obsolete
>diff -u -a -r orangefs-2.8.5//src/kernel/linux-2.6/acl.c orangefs-2.8.5p1//src/kernel/linux-2.6/acl.c >--- orangefs-2.8.5//src/kernel/linux-2.6/acl.c 2012-01-26 15:59:22.000000000 +0100 >+++ orangefs-2.8.5p1//src/kernel/linux-2.6/acl.c 2012-03-07 15:34:22.331930001 +0100 >@@ -279,7 +279,7 @@ > name = PVFS2_XATTR_NAME_ACL_ACCESS; > if (acl) > { >- mode_t mode = inode->i_mode; >+ umode_t mode = inode->i_mode; > /* can we represent this with the UNIXy permission bits? */ > error = posix_acl_equiv_mode(acl, &mode); > /* uh oh some error.. */ >@@ -603,8 +603,9 @@ > } > if (get_acl_flag(inode) == 1 && acl) > { >- struct posix_acl *clone; >- mode_t mode; >+ /* struct posix_acl *clone; >+ mode_t mode; */ >+ umode_t mode = inode->i_mode; > > if (S_ISDIR(inode->i_mode)) > { >@@ -616,15 +617,16 @@ > goto cleanup; > } > } >- clone = posix_acl_clone(acl, GFP_KERNEL); >+ /* clone = posix_acl_clone(acl, GFP_KERNEL); > error = -ENOMEM; > if (!clone) { > gossip_err("posix_acl_clone failed with ENOMEM\n"); > ClearModeFlag(pvfs2_inode); > goto cleanup; >- } >- mode = inode->i_mode; >- error = posix_acl_create_masq(clone, &mode); >+ } */ >+ /* mode = inode->i_mode; >+ error = posix_acl_create_masq(clone, &mode); */ >+ error = posix_acl_create(&acl, GFP_KERNEL, &mode); > if (error >= 0) > { > gossip_debug(GOSSIP_ACL_DEBUG, "posix_acl_create_masq changed mode " >@@ -641,11 +643,12 @@ > */ > if (error > 0) > { >- error = pvfs2_set_acl(inode, ACL_TYPE_ACCESS, clone); >+ error = pvfs2_set_acl(inode, ACL_TYPE_ACCESS, acl); > gossip_debug(GOSSIP_ACL_DEBUG, "pvfs2_set_acl (access) returned %d\n", error); > } > } >- posix_acl_release(clone); >+ /* posix_acl_release(clone); */ >+ posix_acl_release(acl); > } > /* If mode of the inode was changed, then do a forcible ->setattr */ > if (ModeFlag(pvfs2_inode)) >@@ -664,7 +667,8 @@ > */ > int pvfs2_acl_chmod(struct inode *inode) > { >- struct posix_acl *acl, *clone; >+ /* struct posix_acl *acl, *clone; */ >+ struct posix_acl *acl; > int error; > > if (get_acl_flag(inode) == 0) >@@ -691,22 +695,23 @@ > error = 0; > goto out; > } >- clone = posix_acl_clone(acl, GFP_KERNEL); >- posix_acl_release(acl); >- if (!clone) >+ /* clone = posix_acl_clone(acl, GFP_KERNEL); >+ posix_acl_release(acl); */ >+ /*if (!clone) > { > gossip_err("pvfs2_acl_chmod failed with ENOMEM\n"); > error = -ENOMEM; > goto out; >- } >- error = posix_acl_chmod_masq(clone, inode->i_mode); >+ } */ >+ >+ error = posix_acl_chmod(&acl, GFP_KERNEL, inode->i_mode); > if (!error) > { >- error = pvfs2_set_acl(inode, ACL_TYPE_ACCESS, clone); >+ error = pvfs2_set_acl(inode, ACL_TYPE_ACCESS, acl); > gossip_debug(GOSSIP_ACL_DEBUG, "pvfs2_acl_chmod: pvfs2 set acl " > "(access) returned %d\n", error); > } >- posix_acl_release(clone); >+ posix_acl_release(acl); > out: > return error; > } >@@ -763,11 +768,16 @@ > #ifdef HAVE_GENERIC_PERMISSION > int ret; > >- ret = generic_permission(inode, mask, >+ /* see include/linux/fs.h : kernel 2.6 3 params, >+ * 3.0 4 params, 3.1 and 3.2 2 params */ >+ ret = generic_permission(inode, mask > #ifdef HAVE_FOUR_PARAM_GENERIC_PERMISSION >- 0, >+ ,0 > #endif /* HAVE_FOUR_PARAM_GENERIC_PERMISSION */ >- pvfs2_check_acl); >+#ifdef HAVE_THREE_PARAM_GENERIC_PERMISSION >+ ,pvfs2_check_acl >+#endif /* HAVE_THREE_PARAM_GENERIC_PERMISSION */ >+ ); > if (ret != 0) > { > gossip_debug(GOSSIP_ACL_DEBUG, "pvfs2_permission failed: inode: %llu mask = %o" >diff -u -a -r orangefs-2.8.5//src/kernel/linux-2.6/inode.c orangefs-2.8.5p1//src/kernel/linux-2.6/inode.c >--- orangefs-2.8.5//src/kernel/linux-2.6/inode.c 2012-01-26 15:59:22.000000000 +0100 >+++ orangefs-2.8.5p1//src/kernel/linux-2.6/inode.c 2012-03-21 15:40:49.666930001 +0100 >@@ -628,7 +628,7 @@ > inode->i_fop = &pvfs2_dir_operations; > > /* dir inodes start with i_nlink == 2 (for "." entry) */ >- inode->i_nlink++; >+ inc_nlink(inode); > } > else > { >diff -u -a -r orangefs-2.8.5//src/kernel/linux-2.6/namei.c orangefs-2.8.5p1//src/kernel/linux-2.6/namei.c >--- orangefs-2.8.5//src/kernel/linux-2.6/namei.c 2012-01-26 15:59:22.000000000 +0100 >+++ orangefs-2.8.5p1//src/kernel/linux-2.6/namei.c 2012-03-21 16:03:47.237930000 +0100 >@@ -263,7 +263,7 @@ > if (ret == 0) > { > pvfs2_inode_t *dir_pinode = PVFS2_I(dir); >- inode->i_nlink--; >+ drop_nlink(inode); > > SetMtimeFlag(dir_pinode); > pvfs2_update_inode_time(dir); >@@ -372,7 +372,7 @@ > if (ret == 0) > { > pvfs2_inode_t *dir_pinode = PVFS2_I(dir); >- inode->i_nlink--; >+ drop_nlink(inode); > #if 0 > /* NOTE: we have no good way to keep nlink consistent for directories > * across clients; keep constant at 1 -Phil >diff -u -a -r orangefs-2.8.5//src/kernel/linux-2.6/pvfs2-utils.c orangefs-2.8.5p1//src/kernel/linux-2.6/pvfs2-utils.c >--- orangefs-2.8.5//src/kernel/linux-2.6/pvfs2-utils.c 2012-01-26 15:59:22.000000000 +0100 >+++ orangefs-2.8.5p1//src/kernel/linux-2.6/pvfs2-utils.c 2012-03-17 11:37:39.549930001 +0100 >@@ -285,7 +285,7 @@ > * directories across clients; keep constant at 1. Why 1? If > * we go with 2, then find(1) gets confused and won't work > * properly withouth the -noleaf option */ >- inode->i_nlink = 1; >+ set_nlink(inode, 1); > ret = 0; > break; > case PVFS_TYPE_SYMLINK:
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 411173
:
308113
|
308115
|
308117
|
308119
|
308123
|
308125
| 308127 |
308129
|
308133
|
308137
|
308139
|
308141
|
308143
|
308145