diff options
Diffstat (limited to 'ipc/shm.c')
| -rw-r--r-- | ipc/shm.c | 8 |
1 files changed, 6 insertions, 2 deletions
| @@ -368,14 +368,14 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params) | |||
| 368 | file = hugetlb_file_setup(name, size); | 368 | file = hugetlb_file_setup(name, size); |
| 369 | shp->mlock_user = current_user(); | 369 | shp->mlock_user = current_user(); |
| 370 | } else { | 370 | } else { |
| 371 | int acctflag = VM_ACCOUNT; | 371 | int acctflag = 0; |
| 372 | /* | 372 | /* |
| 373 | * Do not allow no accounting for OVERCOMMIT_NEVER, even | 373 | * Do not allow no accounting for OVERCOMMIT_NEVER, even |
| 374 | * if it's asked for. | 374 | * if it's asked for. |
| 375 | */ | 375 | */ |
| 376 | if ((shmflg & SHM_NORESERVE) && | 376 | if ((shmflg & SHM_NORESERVE) && |
| 377 | sysctl_overcommit_memory != OVERCOMMIT_NEVER) | 377 | sysctl_overcommit_memory != OVERCOMMIT_NEVER) |
| 378 | acctflag = 0; | 378 | acctflag = VM_NORESERVE; |
| 379 | file = shmem_file_setup(name, size, acctflag); | 379 | file = shmem_file_setup(name, size, acctflag); |
| 380 | } | 380 | } |
| 381 | error = PTR_ERR(file); | 381 | error = PTR_ERR(file); |
| @@ -565,11 +565,15 @@ static void shm_get_stat(struct ipc_namespace *ns, unsigned long *rss, | |||
| 565 | struct hstate *h = hstate_file(shp->shm_file); | 565 | struct hstate *h = hstate_file(shp->shm_file); |
| 566 | *rss += pages_per_huge_page(h) * mapping->nrpages; | 566 | *rss += pages_per_huge_page(h) * mapping->nrpages; |
| 567 | } else { | 567 | } else { |
| 568 | #ifdef CONFIG_SHMEM | ||
| 568 | struct shmem_inode_info *info = SHMEM_I(inode); | 569 | struct shmem_inode_info *info = SHMEM_I(inode); |
| 569 | spin_lock(&info->lock); | 570 | spin_lock(&info->lock); |
| 570 | *rss += inode->i_mapping->nrpages; | 571 | *rss += inode->i_mapping->nrpages; |
| 571 | *swp += info->swapped; | 572 | *swp += info->swapped; |
| 572 | spin_unlock(&info->lock); | 573 | spin_unlock(&info->lock); |
| 574 | #else | ||
| 575 | *rss += inode->i_mapping->nrpages; | ||
| 576 | #endif | ||
| 573 | } | 577 | } |
| 574 | 578 | ||
| 575 | total++; | 579 | total++; |
