mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH as442] gcc 2.96 workaround in sys_getdents64()
@ 2005-01-13 16:39 Alan Stern
  2005-01-13 18:47 ` Andreas Dilger
  0 siblings, 1 reply; 2+ messages in thread
From: Alan Stern @ 2005-01-13 16:39 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Kernel development list

Andrew:

How serious are people about continuing to support versions of gcc prior 
to 3.0?  My copy of RedHat's gcc-2.96 croaks without this patch:


Signed-off-by: Alan Stern <stern@rowland.harvard.edu>

===== fs/readdir.c 1.26 vs edited =====
--- 1.26/fs/readdir.c	2005-01-09 08:29:46 -05:00
+++ edited/fs/readdir.c	2005-01-13 11:31:58 -05:00
@@ -288,7 +288,7 @@
 	if (lastdirent) {
 		typeof(lastdirent->d_off) d_off = file->f_pos;
 		error = count - buf.count;
-		if (__put_user(d_off, &lastdirent->d_off))
+		if (put_user(d_off, &lastdirent->d_off))
 			error = -EFAULT;
 	}
 

For changes involving code that's not executed very often I wouldn't
hesitate to recommend adopting such a patch.  Does sys_getdents64() fall
in that category?  Also I'm not sure how much extra overhead is added by
calling put_user() rather than __put_user().

So I'll leave it up to you to decide whether the patch should be applied.

Alan Stern


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH as442] gcc 2.96 workaround in sys_getdents64()
  2005-01-13 16:39 [PATCH as442] gcc 2.96 workaround in sys_getdents64() Alan Stern
@ 2005-01-13 18:47 ` Andreas Dilger
  0 siblings, 0 replies; 2+ messages in thread
From: Andreas Dilger @ 2005-01-13 18:47 UTC (permalink / raw)
  To: Alan Stern; +Cc: Andrew Morton, Kernel development list

[-- Attachment #1: Type: text/plain, Size: 1349 bytes --]

On Jan 13, 2005  11:39 -0500, Alan Stern wrote:
> How serious are people about continuing to support versions of gcc prior 
> to 3.0?  My copy of RedHat's gcc-2.96 croaks without this patch:
> 
> 
> Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
> 
> ===== fs/readdir.c 1.26 vs edited =====
> --- 1.26/fs/readdir.c	2005-01-09 08:29:46 -05:00
> +++ edited/fs/readdir.c	2005-01-13 11:31:58 -05:00
> @@ -288,7 +288,7 @@
>  	if (lastdirent) {
>  		typeof(lastdirent->d_off) d_off = file->f_pos;
>  		error = count - buf.count;
> -		if (__put_user(d_off, &lastdirent->d_off))
> +		if (put_user(d_off, &lastdirent->d_off))
>  			error = -EFAULT;
>  	}
>  
> 
> For changes involving code that's not executed very often I wouldn't
> hesitate to recommend adopting such a patch.  Does sys_getdents64() fall
> in that category?  Also I'm not sure how much extra overhead is added by
> calling put_user() rather than __put_user().

The getdents64() syscall is used for every readdir, though I doubt the
extra overhead would be fatal.  In any case, Linus already accepted a
different patch which set "error = -EFAULT" first, then "count - buf.count"
afterward.

Cheers, Andreas
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://members.shaw.ca/adilger/             http://members.shaw.ca/golinux/


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-01-13 18:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-01-13 16:39 [PATCH as442] gcc 2.96 workaround in sys_getdents64() Alan Stern
2005-01-13 18:47 ` Andreas Dilger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®