]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/KeyValueStore: make get_max_object_name_length() sane
authorSage Weil <sage@redhat.com>
Tue, 22 Jul 2014 20:37:20 +0000 (13:37 -0700)
committerSage Weil <sage@redhat.com>
Tue, 22 Jul 2014 20:37:20 +0000 (13:37 -0700)
This is getting the NAME_MAX from the OS, but in reality the backend
KV store is the limiter.  And for leveldb, there is no real limit.
Return 4096 for now.

Signed-off-by: Sage Weil <sage@redhat.com>
src/os/KeyValueStore.cc
src/os/KeyValueStore.h

index d98d7af4eedc8cac876f6272d26023fb143e0791..b184f53cfc4d6b2dafed68ec59402e80b28edbbe 100644 (file)
@@ -911,21 +911,6 @@ int KeyValueStore::umount()
   return 0;
 }
 
-int KeyValueStore::get_max_object_name_length()
-{
-  lock.Lock();
-  int ret = pathconf(basedir.c_str(), _PC_NAME_MAX);
-  if (ret < 0) {
-    int err = errno;
-    lock.Unlock();
-    if (err == 0)
-      return -EDOM;
-    return -err;
-  }
-  lock.Unlock();
-  return ret;
-}
-
 int KeyValueStore::queue_transactions(Sequencer *posr, list<Transaction*> &tls,
                                       TrackedOpRef osd_op,
                                       ThreadPool::TPHandle *handle)
index ae9b0c721332190b33fbbe6d63382c4fe13d819c..c0991cc2e5e2ab8ff655b91995965fec173c8d5e 100644 (file)
@@ -491,7 +491,9 @@ class KeyValueStore : public ObjectStore,
   int write_version_stamp();
   int mount();
   int umount();
-  int get_max_object_name_length();
+  int get_max_object_name_length() {
+    return 4096;  // no real limit for leveldb
+  }
   int get_max_attr_name_length() {
     return 256;  // arbitrary; there is no real limit internally
   }