diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 15:04:02 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 15:04:02 -0500 |
commit | bac5e54c29f352d962a2447d22735316b347b9f1 (patch) | |
tree | 7642993fa93164835ffaa2dacd341388193f1979 /ipc/shm.c | |
parent | 529e89430d6c0d64db8ac474cb95e68e2527c79a (diff) | |
parent | c05c4edd876b7ae92787d1295868afcb89b6a348 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (38 commits)
direct I/O fallback sync simplification
ocfs: stop using do_sync_mapping_range
cleanup blockdev_direct_IO locking
make generic_acl slightly more generic
sanitize xattr handler prototypes
libfs: move EXPORT_SYMBOL for d_alloc_name
vfs: force reval of target when following LAST_BIND symlinks (try #7)
ima: limit imbalance msg
Untangling ima mess, part 3: kill dead code in ima
Untangling ima mess, part 2: deal with counters
Untangling ima mess, part 1: alloc_file()
O_TRUNC open shouldn't fail after file truncation
ima: call ima_inode_free ima_inode_free
IMA: clean up the IMA counts updating code
ima: only insert at inode creation time
ima: valid return code from ima_inode_alloc
fs: move get_empty_filp() deffinition to internal.h
Sanitize exec_permission_lite()
Kill cached_lookup() and real_lookup()
Kill path_lookup_open()
...
Trivial conflicts in fs/direct-io.c
Diffstat (limited to 'ipc/shm.c')
-rw-r--r-- | ipc/shm.c | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -39,7 +39,6 @@ | |||
39 | #include <linux/nsproxy.h> | 39 | #include <linux/nsproxy.h> |
40 | #include <linux/mount.h> | 40 | #include <linux/mount.h> |
41 | #include <linux/ipc_namespace.h> | 41 | #include <linux/ipc_namespace.h> |
42 | #include <linux/ima.h> | ||
43 | 42 | ||
44 | #include <asm/uaccess.h> | 43 | #include <asm/uaccess.h> |
45 | 44 | ||
@@ -879,8 +878,8 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr) | |||
879 | if (err) | 878 | if (err) |
880 | goto out_unlock; | 879 | goto out_unlock; |
881 | 880 | ||
882 | path.dentry = dget(shp->shm_file->f_path.dentry); | 881 | path = shp->shm_file->f_path; |
883 | path.mnt = shp->shm_file->f_path.mnt; | 882 | path_get(&path); |
884 | shp->shm_nattch++; | 883 | shp->shm_nattch++; |
885 | size = i_size_read(path.dentry->d_inode); | 884 | size = i_size_read(path.dentry->d_inode); |
886 | shm_unlock(shp); | 885 | shm_unlock(shp); |
@@ -890,13 +889,12 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr) | |||
890 | if (!sfd) | 889 | if (!sfd) |
891 | goto out_put_dentry; | 890 | goto out_put_dentry; |
892 | 891 | ||
893 | file = alloc_file(path.mnt, path.dentry, f_mode, | 892 | file = alloc_file(&path, f_mode, |
894 | is_file_hugepages(shp->shm_file) ? | 893 | is_file_hugepages(shp->shm_file) ? |
895 | &shm_file_operations_huge : | 894 | &shm_file_operations_huge : |
896 | &shm_file_operations); | 895 | &shm_file_operations); |
897 | if (!file) | 896 | if (!file) |
898 | goto out_free; | 897 | goto out_free; |
899 | ima_counts_get(file); | ||
900 | 898 | ||
901 | file->private_data = sfd; | 899 | file->private_data = sfd; |
902 | file->f_mapping = shp->shm_file->f_mapping; | 900 | file->f_mapping = shp->shm_file->f_mapping; |
@@ -951,7 +949,7 @@ out_unlock: | |||
951 | out_free: | 949 | out_free: |
952 | kfree(sfd); | 950 | kfree(sfd); |
953 | out_put_dentry: | 951 | out_put_dentry: |
954 | dput(path.dentry); | 952 | path_put(&path); |
955 | goto out_nattch; | 953 | goto out_nattch; |
956 | } | 954 | } |
957 | 955 | ||