diff options
author | Nathan Scott <nathans@sgi.com> | 2006-01-11 18:32:51 -0500 |
---|---|---|
committer | Nathan Scott <nathans@sgi.com> | 2006-01-11 18:32:51 -0500 |
commit | 0d1335b3106687d87fcfa0e4d90f2a961bd7e1db (patch) | |
tree | 0da896892a40ed56eb02d58601089d9d2b67c382 | |
parent | 3762ec6bf76cdd32653c409dbad09f7b85807c68 (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.c | 8 |
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 | ||