(Adding stable and Andrew in Cc)

On Mon, Jan 10, 2011 at 09:42:29AM -0500, Dave Anderson wrote:
> From: Dave Anderson <[email protected]>
> 
> Commit 34aacb2920667d405a8df15968b7f71ba46c8f18
> ("procfs: Use generic_file_llseek in /proc/kcore")
> broke seeking on /proc/kcore.  This changes it back
> to use default_llseek in order to restore the original
> behavior.
> 
> The problem with generic_file_llseek is that it only
> allows seeks up to inode->i_sb->s_maxbytes, which is
> 2GB-1 on procfs, where the memory file offset values in
> the /proc/kcore PT_LOAD segments may exceed or start
> beyond that offset value.
> 
> A similar revert was made for /proc/vmcore.
> 
> Signed-off-by: Dave Anderson <[email protected]>
> Cc: Frederic Weisbecker <[email protected]>

Acked-by: Frederic Weisbecker <[email protected]>

In the longer term, I guess default_llseek should disappear
and replaced with generic_file_llseek(), tweaking the sb->s_maxbytes
with the appropriate values in each filesystems.

Thanks for this fix!


> --- linux-2.6.37/fs/proc/kcore.c.orig
> +++ linux-2.6.37/fs/proc/kcore.c
> @@ -558,7 +558,7 @@ static int open_kcore(struct inode *inod
>  static const struct file_operations proc_kcore_operations = {
>       .read           = read_kcore,
>       .open           = open_kcore,
> -     .llseek         = generic_file_llseek,
> +     .llseek         = default_llseek,
>  };
>  
>  #ifdef CONFIG_MEMORY_HOTPLUG

_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to