diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2007-09-19 00:38:12 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-09-19 01:12:19 -0400 |
commit | 9e25ae6d91e7fb058c8957c2a64dc3ca0377dd5b (patch) | |
tree | f7bec2069ae5df356f959df3aad82d44a493066e /arch/powerpc/platforms/cell/spufs/coredump.c | |
parent | 7af1443a9d319132087e1e9a3984b94c6998835c (diff) |
[POWERPC] spufs: Respect RLIMIT_CORE in spu coredump code
Currently the spu coredump code doesn't respect the ulimit, it should.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/cell/spufs/coredump.c')
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/coredump.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/coredump.c b/arch/powerpc/platforms/cell/spufs/coredump.c index 6b8aef6d7e6..80f62363e1c 100644 --- a/arch/powerpc/platforms/cell/spufs/coredump.c +++ b/arch/powerpc/platforms/cell/spufs/coredump.c | |||
@@ -53,8 +53,12 @@ static ssize_t do_coredump_read(int num, struct spu_context *ctx, void *buffer, | |||
53 | */ | 53 | */ |
54 | static int spufs_dump_write(struct file *file, const void *addr, int nr, loff_t *foffset) | 54 | static int spufs_dump_write(struct file *file, const void *addr, int nr, loff_t *foffset) |
55 | { | 55 | { |
56 | unsigned long limit = current->signal->rlim[RLIMIT_CORE].rlim_cur; | ||
56 | ssize_t written; | 57 | ssize_t written; |
57 | 58 | ||
59 | if (*foffset + nr > limit) | ||
60 | return -EIO; | ||
61 | |||
58 | written = file->f_op->write(file, addr, nr, &file->f_pos); | 62 | written = file->f_op->write(file, addr, nr, &file->f_pos); |
59 | *foffset += written; | 63 | *foffset += written; |
60 | 64 | ||