* Note that reiserfs quotas are disabled on SLES 10 in this kernel.
* bug fixes
+Severity : normal
+Frequency : liblustre clients only
+Bugzilla : 12229
+Description: getdirentries does not give error when run on compute nodes
+Details : getdirentries does not fail when the size specified as an argument
+ is too small to contain at least one entry
+
Severity : enhancement
Bugzilla : 11548
Description: Add LNET router traceability for debug purposes
le32_to_cpu(de->inode), d_type, &filled);
if (over) {
free_page(page);
+ /*
+ * if buffer overflow with no data
+ * returned yet, then report error
+ * instead of eof
+ */
+ if (filled == 0)
+ RETURN(-EINVAL);
+
GOTO(done, 0);
}
}
LEAVE();
}
+/*
+ * getdirentries should return -1 and set errno to EINVAL when the size
+ * specified as an argument is too small to contain at least one entry
+ * (see bugzilla ticket 12229)
+ */
+int t56(char *name)
+{
+ int fd;
+ size_t nbytes;
+ off_t basep = 0;
+ ssize_t rc = 0;
+ struct dirent dir;
+
+ ENTRY("getdirentries should fail if nbytes is too small");
+
+ /* Set count to be very small. The result should be EINVAL */
+ nbytes = 8;
+
+ /* open the directory and call getdirentries */
+ fd = t_opendir(lustre_path);
+
+ rc = getdirentries(fd, (char *)&dir, nbytes, &basep);
+
+ if (rc != -1) {
+ printf("Test failed: getdirentries returned %d\n", rc);
+ t_close(fd);
+ return -1;
+ }
+ if (errno != EINVAL) {
+ printf("Test failed: getdirentries returned %d but errno is set"
+ " to %d (should be EINVAL)\n", rc, errno);
+ t_close(fd);
+ return -1;
+ }
+ t_close(fd);
+
+ LEAVE();
+}
+
+
extern void __liblustre_setup_(void);
extern void __liblustre_cleanup_(void);
{ t53, "53" },
{ t54, "54" },
{ t55, "55" },
+ { t56, "56" },
{ NULL, NULL }
};