]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: put readdir max entries in mount options
authorSage Weil <sage@newdream.net>
Wed, 27 May 2009 21:06:13 +0000 (14:06 -0700)
committerSage Weil <sage@newdream.net>
Wed, 27 May 2009 21:06:13 +0000 (14:06 -0700)
src/kernel/dir.c
src/kernel/super.c

index 64bb673bc8ece50eb5d75c8ef4f91b08593948cf..8ec44a882b292898e4dc8e597b78082da9a04dc3 100644 (file)
@@ -158,7 +158,7 @@ static int ceph_readdir(struct file *filp, void *dirent, filldir_t filldir)
        u32 ftype;
        struct ceph_mds_reply_info_parsed *rinfo;
        int complete = 0, len;
-       int max_entries = 1024;
+       const int max_entries = client->mount_args.max_readdir;
 
        dout(5, "readdir %p filp %p frag %u off %u\n", inode, filp, frag, off);
        if (fi->at_end)
index 3743d4c4aab3e03bf38322cd7a01e23da0a945de..a8abd654a4bb1c7daec834bb3af8531a82686e8e 100644 (file)
@@ -379,6 +379,7 @@ enum {
        Opt_mount_timeout,
        Opt_caps_wanted_delay_min,
        Opt_caps_wanted_delay_max,
+       Opt_readdir_max_entries,
        /* int args above */
        Opt_ip,
        Opt_noshare,
@@ -412,6 +413,7 @@ static match_table_t arg_tokens = {
        {Opt_mount_timeout, "mount_timeout=%d"},
        {Opt_caps_wanted_delay_min, "caps_wanted_delay_min=%d"},
        {Opt_caps_wanted_delay_max, "caps_wanted_delay_max=%d"},
+       {Opt_readdir_max_entries, "readdir_max_entries=%d"},
        /* int args above */
        {Opt_ip, "ip=%s"},
        {Opt_debug_console, "debug_console"},
@@ -521,6 +523,7 @@ static int parse_mount_args(int flags, char *options, const char *dev_name,
        args->caps_wanted_delay_max = CEPH_CAPS_WANTED_DELAY_MAX_DEFAULT;
        args->snapdir_name = ".snap";
        args->cap_release_safety = CAPS_PER_RELEASE * 4;
+       args->max_readdir = 1024;
 
        /* ip1[:port1][,ip2[:port2]...]:/subdir/in/fs */
        c = strstr(dev_name, ":/");
@@ -641,6 +644,9 @@ static int parse_mount_args(int flags, char *options, const char *dev_name,
                case Opt_caps_wanted_delay_max:
                        args->caps_wanted_delay_max = intval;
                        break;
+               case Opt_readdir_max_entries:
+                       args->max_readdir = intval;
+                       break;
 
                case Opt_noshare:
                        args->flags |= CEPH_OPT_NOSHARE;