Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[deliverable/linux.git] / fs / orangefs / orangefs-utils.c
index 40f5163b56aa02142b4be4ed64eabd5a96ccfc18..2d129b5886eeb7a61d067502900dca75cf525d08 100644 (file)
@@ -303,7 +303,7 @@ int orangefs_inode_getattr(struct inode *inode, int new, int size)
                }
                break;
        case S_IFDIR:
-               inode->i_size = PAGE_CACHE_SIZE;
+               inode->i_size = PAGE_SIZE;
                orangefs_inode->blksize = (1 << inode->i_blkbits);
                spin_lock(&inode->i_lock);
                inode_set_bytes(inode, inode->i_size);
@@ -315,9 +315,13 @@ int orangefs_inode_getattr(struct inode *inode, int new, int size)
                        inode->i_size = (loff_t)strlen(new_op->
                            downcall.resp.getattr.link_target);
                        orangefs_inode->blksize = (1 << inode->i_blkbits);
-                       strlcpy(orangefs_inode->link_target,
+                       ret = strscpy(orangefs_inode->link_target,
                            new_op->downcall.resp.getattr.link_target,
                            ORANGEFS_NAME_MAX);
+                       if (ret == -E2BIG) {
+                               ret = -EIO;
+                               goto out;
+                       }
                        inode->i_link = orangefs_inode->link_target;
                }
                break;
This page took 0.026771 seconds and 5 git commands to generate.