Skip to content

Commit

Permalink
tomoyo: Fix pathname calculation breakage.
Browse files Browse the repository at this point in the history
Commit 7177a9c ("fs: call rename2 if exists") changed
"struct inode_operations"->rename == NULL if
"struct inode_operations"->rename2 != NULL .

TOMOYO needs to check for both ->rename and ->rename2 , or
a system on (e.g.) ext4 filesystem won't boot.

Signed-off-by: Tetsuo Handa <[email protected]>
Signed-off-by: Serge E. Hallyn <[email protected]>
  • Loading branch information
Tetsuo Handa authored and hallyn committed Aug 27, 2014
1 parent 52addcf commit 8fe7a26
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions security/tomoyo/realpath.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ static char *tomoyo_get_local_path(struct dentry *dentry, char * const buffer,
* Use filesystem name if filesystem does not support rename()
* operation.
*/
if (!inode->i_op->rename)
if (!inode->i_op->rename && !inode->i_op->rename2)
goto prepend_filesystem_name;
}
/* Prepend device name. */
Expand Down Expand Up @@ -282,7 +282,8 @@ char *tomoyo_realpath_from_path(struct path *path)
* Get local name for filesystems without rename() operation
* or dentry without vfsmount.
*/
if (!path->mnt || !inode->i_op->rename)
if (!path->mnt ||
(!inode->i_op->rename && !inode->i_op->rename2))
pos = tomoyo_get_local_path(path->dentry, buf,
buf_len - 1);
/* Get absolute name for the rest. */
Expand Down

0 comments on commit 8fe7a26

Please sign in to comment.