Loading arch/powerpc/platforms/cell/spufs/coredump.c +20 −20 Original line number Diff line number Diff line Loading @@ -106,6 +106,17 @@ static int spufs_ctx_note_size(struct spu_context *ctx, int dfd) return total; } static int match_context(const void *v, struct file *file, unsigned fd) { struct spu_context *ctx; if (file->f_op != &spufs_context_fops) return 0; ctx = SPUFS_I(file->f_dentry->d_inode)->i_ctx; if (ctx->flags & SPU_CREATE_NOSCHED) return 0; return fd + 1; } /* * The additional architecture-specific notes for Cell are various * context files in the spu context. Loading @@ -115,29 +126,18 @@ static int spufs_ctx_note_size(struct spu_context *ctx, int dfd) * internal functionality to dump them without needing to actually * open the files. */ /* * descriptor table is not shared, so files can't change or go away. */ static struct spu_context *coredump_next_context(int *fd) { struct fdtable *fdt = files_fdtable(current->files); struct file *file; struct spu_context *ctx = NULL; for (; *fd < fdt->max_fds; (*fd)++) { if (!fd_is_open(*fd, fdt)) continue; int n = iterate_fd(current->files, *fd, match_context, NULL); if (!n) return NULL; *fd = n - 1; file = fcheck(*fd); if (!file || file->f_op != &spufs_context_fops) continue; ctx = SPUFS_I(file->f_dentry->d_inode)->i_ctx; if (ctx->flags & SPU_CREATE_NOSCHED) continue; break; } return ctx; return SPUFS_I(file->f_dentry->d_inode)->i_ctx; } int spufs_coredump_extra_notes_size(void) Loading Loading
arch/powerpc/platforms/cell/spufs/coredump.c +20 −20 Original line number Diff line number Diff line Loading @@ -106,6 +106,17 @@ static int spufs_ctx_note_size(struct spu_context *ctx, int dfd) return total; } static int match_context(const void *v, struct file *file, unsigned fd) { struct spu_context *ctx; if (file->f_op != &spufs_context_fops) return 0; ctx = SPUFS_I(file->f_dentry->d_inode)->i_ctx; if (ctx->flags & SPU_CREATE_NOSCHED) return 0; return fd + 1; } /* * The additional architecture-specific notes for Cell are various * context files in the spu context. Loading @@ -115,29 +126,18 @@ static int spufs_ctx_note_size(struct spu_context *ctx, int dfd) * internal functionality to dump them without needing to actually * open the files. */ /* * descriptor table is not shared, so files can't change or go away. */ static struct spu_context *coredump_next_context(int *fd) { struct fdtable *fdt = files_fdtable(current->files); struct file *file; struct spu_context *ctx = NULL; for (; *fd < fdt->max_fds; (*fd)++) { if (!fd_is_open(*fd, fdt)) continue; int n = iterate_fd(current->files, *fd, match_context, NULL); if (!n) return NULL; *fd = n - 1; file = fcheck(*fd); if (!file || file->f_op != &spufs_context_fops) continue; ctx = SPUFS_I(file->f_dentry->d_inode)->i_ctx; if (ctx->flags & SPU_CREATE_NOSCHED) continue; break; } return ctx; return SPUFS_I(file->f_dentry->d_inode)->i_ctx; } int spufs_coredump_extra_notes_size(void) Loading