[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>

+4 -4
+4 -4
fs/xfs/linux-2.6/xfs_iops.c
··· 546 546 ASSERT(dentry); 547 547 ASSERT(nd); 548 548 549 - link = (char *)kmalloc(MAXNAMELEN+1, GFP_KERNEL); 549 + link = (char *)kmalloc(MAXPATHLEN+1, GFP_KERNEL); 550 550 if (!link) { 551 551 nd_set_link(nd, ERR_PTR(-ENOMEM)); 552 552 return NULL; ··· 562 562 vp = LINVFS_GET_VP(dentry->d_inode); 563 563 564 564 iov.iov_base = link; 565 - iov.iov_len = MAXNAMELEN; 565 + iov.iov_len = MAXPATHLEN; 566 566 567 567 uio->uio_iov = &iov; 568 568 uio->uio_offset = 0; 569 569 uio->uio_segflg = UIO_SYSSPACE; 570 - uio->uio_resid = MAXNAMELEN; 570 + uio->uio_resid = MAXPATHLEN; 571 571 uio->uio_iovcnt = 1; 572 572 573 573 VOP_READLINK(vp, uio, 0, NULL, error); ··· 575 575 kfree(link); 576 576 link = ERR_PTR(-error); 577 577 } else { 578 - link[MAXNAMELEN - uio->uio_resid] = '\0'; 578 + link[MAXPATHLEN - uio->uio_resid] = '\0'; 579 579 } 580 580 kfree(uio); 581 581