aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Scott <nathans@sgi.com>2006-01-11 18:32:51 -0500
committerNathan Scott <nathans@sgi.com>2006-01-11 18:32:51 -0500
commit0d1335b3106687d87fcfa0e4d90f2a961bd7e1db (patch)
tree0da896892a40ed56eb02d58601089d9d2b67c382
parent3762ec6bf76cdd32653c409dbad09f7b85807c68 (diff)
[XFS] Fix follow_link when dealing with symlinks larger than 256 bytes.
Thanks to Yamamoto Takashi. SGI-PV: 947953 SGI-Modid: xfs-linux-melb:xfs-kern:24962a Signed-off-by: Nathan Scott <nathans@sgi.com>
-rw-r--r--fs/xfs/linux-2.6/xfs_iops.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c
index d388d14efe3e..129403958044 100644
--- a/fs/xfs/linux-2.6/xfs_iops.c
+++ b/fs/xfs/linux-2.6/xfs_iops.c
@@ -546,7 +546,7 @@ linvfs_follow_link(
546 ASSERT(dentry); 546 ASSERT(dentry);
547 ASSERT(nd); 547 ASSERT(nd);
548 548
549 link = (char *)kmalloc(MAXNAMELEN+1, GFP_KERNEL); 549 link = (char *)kmalloc(MAXPATHLEN+1, GFP_KERNEL);
550 if (!link) { 550 if (!link) {
551 nd_set_link(nd, ERR_PTR(-ENOMEM)); 551 nd_set_link(nd, ERR_PTR(-ENOMEM));
552 return NULL; 552 return NULL;
@@ -562,12 +562,12 @@ linvfs_follow_link(
562 vp = LINVFS_GET_VP(dentry->d_inode); 562 vp = LINVFS_GET_VP(dentry->d_inode);
563 563
564 iov.iov_base = link; 564 iov.iov_base = link;
565 iov.iov_len = MAXNAMELEN; 565 iov.iov_len = MAXPATHLEN;
566 566
567 uio->uio_iov = &iov; 567 uio->uio_iov = &iov;
568 uio->uio_offset = 0; 568 uio->uio_offset = 0;
569 uio->uio_segflg = UIO_SYSSPACE; 569 uio->uio_segflg = UIO_SYSSPACE;
570 uio->uio_resid = MAXNAMELEN; 570 uio->uio_resid = MAXPATHLEN;
571 uio->uio_iovcnt = 1; 571 uio->uio_iovcnt = 1;
572 572
573 VOP_READLINK(vp, uio, 0, NULL, error); 573 VOP_READLINK(vp, uio, 0, NULL, error);
@@ -575,7 +575,7 @@ linvfs_follow_link(
575 kfree(link); 575 kfree(link);
576 link = ERR_PTR(-error); 576 link = ERR_PTR(-error);
577 } else { 577 } else {
578 link[MAXNAMELEN - uio->uio_resid] = '\0'; 578 link[MAXPATHLEN - uio->uio_resid] = '\0';
579 } 579 }
580 kfree(uio); 580 kfree(uio);
581 581