Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
06b16e9f
Commit
06b16e9f
authored
Jun 08, 2009
by
Al Viro
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
switch shmem to inode->i_acl
Signed-off-by:
Al Viro
<
viro@zeniv.linux.org.uk
>
parent
281eede0
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
10 additions
and
36 deletions
+10
-36
include/linux/shmem_fs.h
include/linux/shmem_fs.h
+0
-8
mm/shmem.c
mm/shmem.c
+4
-5
mm/shmem_acl.c
mm/shmem_acl.c
+6
-23
No files found.
include/linux/shmem_fs.h
View file @
06b16e9f
...
@@ -19,10 +19,6 @@ struct shmem_inode_info {
...
@@ -19,10 +19,6 @@ struct shmem_inode_info {
swp_entry_t
i_direct
[
SHMEM_NR_DIRECT
];
/* first blocks */
swp_entry_t
i_direct
[
SHMEM_NR_DIRECT
];
/* first blocks */
struct
list_head
swaplist
;
/* chain of maybes on swap */
struct
list_head
swaplist
;
/* chain of maybes on swap */
struct
inode
vfs_inode
;
struct
inode
vfs_inode
;
#ifdef CONFIG_TMPFS_POSIX_ACL
struct
posix_acl
*
i_acl
;
struct
posix_acl
*
i_default_acl
;
#endif
};
};
struct
shmem_sb_info
{
struct
shmem_sb_info
{
...
@@ -45,7 +41,6 @@ static inline struct shmem_inode_info *SHMEM_I(struct inode *inode)
...
@@ -45,7 +41,6 @@ static inline struct shmem_inode_info *SHMEM_I(struct inode *inode)
#ifdef CONFIG_TMPFS_POSIX_ACL
#ifdef CONFIG_TMPFS_POSIX_ACL
int
shmem_permission
(
struct
inode
*
,
int
);
int
shmem_permission
(
struct
inode
*
,
int
);
int
shmem_acl_init
(
struct
inode
*
,
struct
inode
*
);
int
shmem_acl_init
(
struct
inode
*
,
struct
inode
*
);
void
shmem_acl_destroy_inode
(
struct
inode
*
);
extern
struct
xattr_handler
shmem_xattr_acl_access_handler
;
extern
struct
xattr_handler
shmem_xattr_acl_access_handler
;
extern
struct
xattr_handler
shmem_xattr_acl_default_handler
;
extern
struct
xattr_handler
shmem_xattr_acl_default_handler
;
...
@@ -57,9 +52,6 @@ static inline int shmem_acl_init(struct inode *inode, struct inode *dir)
...
@@ -57,9 +52,6 @@ static inline int shmem_acl_init(struct inode *inode, struct inode *dir)
{
{
return
0
;
return
0
;
}
}
static
inline
void
shmem_acl_destroy_inode
(
struct
inode
*
inode
)
{
}
#endif
/* CONFIG_TMPFS_POSIX_ACL */
#endif
/* CONFIG_TMPFS_POSIX_ACL */
#endif
#endif
mm/shmem.c
View file @
06b16e9f
...
@@ -2379,6 +2379,10 @@ static struct inode *shmem_alloc_inode(struct super_block *sb)
...
@@ -2379,6 +2379,10 @@ static struct inode *shmem_alloc_inode(struct super_block *sb)
p
=
(
struct
shmem_inode_info
*
)
kmem_cache_alloc
(
shmem_inode_cachep
,
GFP_KERNEL
);
p
=
(
struct
shmem_inode_info
*
)
kmem_cache_alloc
(
shmem_inode_cachep
,
GFP_KERNEL
);
if
(
!
p
)
if
(
!
p
)
return
NULL
;
return
NULL
;
#ifdef CONFIG_TMPFS_POSIX_ACL
p
->
vfs_inode
.
i_acl
=
NULL
;
p
->
vfs_inode
.
i_default_acl
=
NULL
;
#endif
return
&
p
->
vfs_inode
;
return
&
p
->
vfs_inode
;
}
}
...
@@ -2388,7 +2392,6 @@ static void shmem_destroy_inode(struct inode *inode)
...
@@ -2388,7 +2392,6 @@ static void shmem_destroy_inode(struct inode *inode)
/* only struct inode is valid if it's an inline symlink */
/* only struct inode is valid if it's an inline symlink */
mpol_free_shared_policy
(
&
SHMEM_I
(
inode
)
->
policy
);
mpol_free_shared_policy
(
&
SHMEM_I
(
inode
)
->
policy
);
}
}
shmem_acl_destroy_inode
(
inode
);
kmem_cache_free
(
shmem_inode_cachep
,
SHMEM_I
(
inode
));
kmem_cache_free
(
shmem_inode_cachep
,
SHMEM_I
(
inode
));
}
}
...
@@ -2397,10 +2400,6 @@ static void init_once(void *foo)
...
@@ -2397,10 +2400,6 @@ static void init_once(void *foo)
struct
shmem_inode_info
*
p
=
(
struct
shmem_inode_info
*
)
foo
;
struct
shmem_inode_info
*
p
=
(
struct
shmem_inode_info
*
)
foo
;
inode_init_once
(
&
p
->
vfs_inode
);
inode_init_once
(
&
p
->
vfs_inode
);
#ifdef CONFIG_TMPFS_POSIX_ACL
p
->
i_acl
=
NULL
;
p
->
i_default_acl
=
NULL
;
#endif
}
}
static
int
init_inodecache
(
void
)
static
int
init_inodecache
(
void
)
...
...
mm/shmem_acl.c
View file @
06b16e9f
...
@@ -22,11 +22,11 @@ shmem_get_acl(struct inode *inode, int type)
...
@@ -22,11 +22,11 @@ shmem_get_acl(struct inode *inode, int type)
spin_lock
(
&
inode
->
i_lock
);
spin_lock
(
&
inode
->
i_lock
);
switch
(
type
)
{
switch
(
type
)
{
case
ACL_TYPE_ACCESS
:
case
ACL_TYPE_ACCESS
:
acl
=
posix_acl_dup
(
SHMEM_I
(
inode
)
->
i_acl
);
acl
=
posix_acl_dup
(
inode
->
i_acl
);
break
;
break
;
case
ACL_TYPE_DEFAULT
:
case
ACL_TYPE_DEFAULT
:
acl
=
posix_acl_dup
(
SHMEM_I
(
inode
)
->
i_default_acl
);
acl
=
posix_acl_dup
(
inode
->
i_default_acl
);
break
;
break
;
}
}
spin_unlock
(
&
inode
->
i_lock
);
spin_unlock
(
&
inode
->
i_lock
);
...
@@ -45,13 +45,13 @@ shmem_set_acl(struct inode *inode, int type, struct posix_acl *acl)
...
@@ -45,13 +45,13 @@ shmem_set_acl(struct inode *inode, int type, struct posix_acl *acl)
spin_lock
(
&
inode
->
i_lock
);
spin_lock
(
&
inode
->
i_lock
);
switch
(
type
)
{
switch
(
type
)
{
case
ACL_TYPE_ACCESS
:
case
ACL_TYPE_ACCESS
:
free
=
SHMEM_I
(
inode
)
->
i_acl
;
free
=
inode
->
i_acl
;
SHMEM_I
(
inode
)
->
i_acl
=
posix_acl_dup
(
acl
);
inode
->
i_acl
=
posix_acl_dup
(
acl
);
break
;
break
;
case
ACL_TYPE_DEFAULT
:
case
ACL_TYPE_DEFAULT
:
free
=
SHMEM_I
(
inode
)
->
i_default_acl
;
free
=
inode
->
i_default_acl
;
SHMEM_I
(
inode
)
->
i_default_acl
=
posix_acl_dup
(
acl
);
inode
->
i_default_acl
=
posix_acl_dup
(
acl
);
break
;
break
;
}
}
spin_unlock
(
&
inode
->
i_lock
);
spin_unlock
(
&
inode
->
i_lock
);
...
@@ -154,23 +154,6 @@ shmem_acl_init(struct inode *inode, struct inode *dir)
...
@@ -154,23 +154,6 @@ shmem_acl_init(struct inode *inode, struct inode *dir)
return
generic_acl_init
(
inode
,
dir
,
&
shmem_acl_ops
);
return
generic_acl_init
(
inode
,
dir
,
&
shmem_acl_ops
);
}
}
/**
* shmem_acl_destroy_inode - destroy acls hanging off the in-memory inode
*
* This is done before destroying the actual inode.
*/
void
shmem_acl_destroy_inode
(
struct
inode
*
inode
)
{
if
(
SHMEM_I
(
inode
)
->
i_acl
)
posix_acl_release
(
SHMEM_I
(
inode
)
->
i_acl
);
SHMEM_I
(
inode
)
->
i_acl
=
NULL
;
if
(
SHMEM_I
(
inode
)
->
i_default_acl
)
posix_acl_release
(
SHMEM_I
(
inode
)
->
i_default_acl
);
SHMEM_I
(
inode
)
->
i_default_acl
=
NULL
;
}
/**
/**
* shmem_check_acl - check_acl() callback for generic_permission()
* shmem_check_acl - check_acl() callback for generic_permission()
*/
*/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment