Age | Commit message (Expand) | Author | Files | Lines |
2016-11-10 | libceph: initialize last_linger_id with a large integer | Ilya Dryomov | 1 | -0/+1 |
2016-11-10 | libceph: fix legacy layout decode with pool 0 | Yan, Zheng | 1 | -1/+2 |
2016-10-18 | mm: replace get_user_pages_unlocked() write/force parameters with gup_flags | Lorenzo Stoakes | 1 | -1/+1 |
2016-10-05 | crush: remove redundant local variable | Ilya Dryomov | 1 | -3/+2 |
2016-10-05 | crush: don't normalize input of crush_ln iteratively | Ilya Dryomov | 1 | -3/+9 |
2016-10-03 | libceph: ceph_build_auth() doesn't need ceph_auth_build_hello() | Ilya Dryomov | 1 | -3/+1 |
2016-10-03 | libceph: use CEPH_AUTH_UNKNOWN in ceph_auth_build_hello() | Ilya Dryomov | 1 | -1/+1 |
2016-08-24 | rbd: add 'client_addr' sysfs rbd device attribute | Ilya Dryomov | 1 | -0/+6 |
2016-08-24 | rbd: support for exclusive-lock feature | Ilya Dryomov | 1 | -0/+1 |
2016-08-24 | rbd: retry watch re-registration periodically | Ilya Dryomov | 1 | -0/+1 |
2016-08-24 | libceph: rename ceph_client_id() -> ceph_client_gid() | Ilya Dryomov | 1 | -3/+4 |
2016-08-24 | libceph: support for blacklisting clients | Douglas Fuller | 1 | -0/+82 |
2016-08-24 | libceph: support for lock.lock_info | Douglas Fuller | 1 | -0/+145 |
2016-08-24 | libceph: support for advisory locking on RADOS objects | Douglas Fuller | 2 | -0/+181 |
2016-08-24 | libceph: add ceph_osdc_call() single-page helper | Douglas Fuller | 1 | -0/+51 |
2016-08-24 | libceph: support for CEPH_OSD_OP_LIST_WATCHERS | Douglas Fuller | 1 | -0/+117 |
2016-08-24 | libceph: rename ceph_entity_name_encode() -> ceph_auth_entity_name_encode() | Ilya Dryomov | 2 | -3/+6 |
2016-08-08 | libceph: using kfree_rcu() to simplify the code | Wei Yongjun | 1 | -7/+1 |
2016-08-08 | libceph: make cancel_generic_request() static | Wei Yongjun | 1 | -1/+1 |
2016-08-08 | libceph: fix return value check in alloc_msg_with_page_vector() | Wei Yongjun | 1 | -1/+1 |
2016-07-28 | libceph: fsmap.user subscription support | Yan, Zheng | 1 | -1/+3 |
2016-07-28 | libceph: make sure redirect does not change namespace | Yan, Zheng | 1 | -0/+15 |
2016-07-28 | libceph: rados pool namespace support | Yan, Zheng | 3 | -15/+81 |
2016-07-28 | libceph: introduce reference counted string | Yan, Zheng | 3 | -1/+114 |
2016-07-28 | libceph: define new ceph_file_layout structure | Yan, Zheng | 3 | -8/+32 |
2016-07-28 | libceph: fix some missing includes | Ilya Dryomov | 1 | -0/+1 |
2016-07-22 | libceph: apply new_state before new_up_client on incrementals | Ilya Dryomov | 1 | -43/+113 |
2016-05-30 | libceph: use %s instead of %pE in dout()s | Ilya Dryomov | 2 | -5/+5 |
2016-05-30 | libceph: put request only if it's done in handle_reply() | Ilya Dryomov | 1 | -3/+3 |
2016-05-30 | libceph: change ceph_osdmap_flag() to take osdc | Ilya Dryomov | 1 | -20/+19 |
2016-05-26 | libceph: make ceph_osdc_wait_request() uninterruptible | Yan, Zheng | 1 | -1/+1 |
2016-05-26 | ceph: make logical calculation functions return bool | Zhang Zhuoyu | 1 | -1/+1 |
2016-05-26 | libceph: support for subscribing to "mdsmap.<id>" maps | Ilya Dryomov | 2 | -5/+14 |
2016-05-26 | libceph: replace ceph_monc_request_next_osdmap() | Ilya Dryomov | 2 | -14/+7 |
2016-05-26 | libceph: take osdc->lock in osdmap_show() and dump flags in hex | Ilya Dryomov | 1 | -5/+5 |
2016-05-26 | libceph: pool deletion detection | Ilya Dryomov | 1 | -6/+242 |
2016-05-26 | libceph: async MON client generic requests | Ilya Dryomov | 1 | -106/+210 |
2016-05-26 | libceph: support for checking on status of watch | Ilya Dryomov | 1 | -1/+51 |
2016-05-26 | libceph: support for sending notifies | Ilya Dryomov | 2 | -11/+226 |
2016-05-26 | libceph, rbd: ceph_osd_linger_request, watch/notify v2 | Ilya Dryomov | 3 | -249/+951 |
2016-05-26 | libceph: wait_request_timeout() | Ilya Dryomov | 1 | -13/+21 |
2016-05-26 | libceph: request_init() and request_release_checks() | Ilya Dryomov | 1 | -17/+27 |
2016-05-26 | libceph: a major OSD client update | Ilya Dryomov | 2 | -611/+587 |
2016-05-26 | libceph: protect osdc->osd_lru list with a spinlock | Ilya Dryomov | 1 | -11/+18 |
2016-05-26 | libceph: allocate ceph_osd with GFP_NOFAIL | Ilya Dryomov | 1 | -4/+1 |
2016-05-26 | libceph: osd_init() and osd_cleanup() | Ilya Dryomov | 1 | -9/+37 |
2016-05-26 | libceph: handle_one_map() | Ilya Dryomov | 2 | -56/+138 |
2016-05-26 | libceph: allocate dummy osdmap in ceph_osdc_init() | Ilya Dryomov | 2 | -16/+29 |
2016-05-26 | libceph: schedule tick from ceph_osdc_init() | Ilya Dryomov | 1 | -28/+9 |
2016-05-26 | libceph: move schedule_delayed_work() in ceph_osdc_init() | Ilya Dryomov | 1 | -3/+3 |
2016-05-26 | libceph: redo callbacks and factor out MOSDOpReply decoding | Ilya Dryomov | 1 | -153/+209 |
2016-05-26 | libceph: drop msg argument from ceph_osdc_callback_t | Ilya Dryomov | 1 | -2/+2 |
2016-05-26 | libceph: switch to calc_target(), part 2 | Ilya Dryomov | 2 | -200/+216 |
2016-05-26 | libceph: switch to calc_target(), part 1 | Ilya Dryomov | 2 | -97/+24 |
2016-05-26 | libceph: introduce ceph_osd_request_target, calc_target() | Ilya Dryomov | 2 | -2/+276 |
2016-05-26 | libceph: pi->min_size, pi->last_force_request_resend | Ilya Dryomov | 2 | -5/+53 |
2016-05-26 | libceph: make pgid_cmp() global | Ilya Dryomov | 1 | -11/+12 |
2016-05-26 | libceph: rename ceph_calc_pg_primary() | Ilya Dryomov | 1 | -4/+5 |
2016-05-26 | libceph: ceph_osds, ceph_pg_to_up_acting_osds() | Ilya Dryomov | 2 | -143/+197 |
2016-05-26 | libceph: rename ceph_oloc_oid_to_pg() | Ilya Dryomov | 2 | -17/+18 |
2016-05-26 | libceph: DEFINE_RB_FUNCS macro | Ilya Dryomov | 2 | -131/+18 |
2016-05-26 | libceph: open-code remove_{all,old}_osds() | Ilya Dryomov | 1 | -30/+21 |
2016-05-26 | libceph: nuke unused fields and functions | Ilya Dryomov | 3 | -17/+2 |
2016-05-26 | libceph: variable-sized ceph_object_id | Ilya Dryomov | 3 | -8/+103 |
2016-05-26 | libceph: change how osd_op_reply message size is calculated | Ilya Dryomov | 1 | -10/+4 |
2016-05-26 | libceph: move message allocation out of ceph_osdc_alloc_request() | Ilya Dryomov | 1 | -38/+50 |
2016-05-26 | libceph: grab snapc in ceph_osdc_alloc_request() | Ilya Dryomov | 1 | -2/+4 |
2016-05-26 | libceph: make ceph_osdc_put_request() accept NULL | Ilya Dryomov | 1 | -3/+5 |
2016-04-25 | libceph: make authorizer destruction independent of ceph_auth_client | Ilya Dryomov | 6 | -55/+55 |
2016-04-04 | mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros | Kirill A. Shutemov | 3 | -20/+20 |
2016-03-26 | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sag... | Linus Torvalds | 5 | -272/+344 |
2016-03-25 | libceph: use KMEM_CACHE macro | Geliang Tang | 1 | -8/+2 |
2016-03-25 | libceph: use sizeof_footer() more | Ilya Dryomov | 1 | -16/+3 |
2016-03-25 | libceph: add helper that duplicates last extent operation | Yan, Zheng | 1 | -0/+22 |
2016-03-25 | libceph: enable large, variable-sized OSD requests | Ilya Dryomov | 1 | -15/+28 |
2016-03-25 | libceph: osdc->req_mempool should be backed by a slab pool | Ilya Dryomov | 1 | -2/+2 |
2016-03-25 | libceph: make r_request msg_size calculation clearer | Ilya Dryomov | 1 | -10/+11 |
2016-03-25 | libceph: move r_reply_op_{len,result} into struct ceph_osd_req_op | Yan, Zheng | 1 | -2/+2 |
2016-03-25 | libceph: rename ceph_osd_req_op::payload_len to indata_len | Ilya Dryomov | 1 | -6/+6 |
2016-03-25 | libceph: behave in mon_fault() if cur_mon < 0 | Ilya Dryomov | 1 | -14/+9 |
2016-03-25 | libceph: reschedule tick in mon_fault() | Ilya Dryomov | 1 | -4/+4 |
2016-03-25 | libceph: introduce and switch to reopen_session() | Ilya Dryomov | 1 | -17/+16 |
2016-03-25 | libceph: monc hunt rate is 3s with backoff up to 30s | Ilya Dryomov | 1 | -9/+16 |
2016-03-25 | libceph: monc ping rate is 10s | Ilya Dryomov | 2 | -7/+2 |
2016-03-25 | libceph: pick a different monitor when reconnecting | Ilya Dryomov | 1 | -28/+57 |
2016-03-25 | libceph: revamp subs code, switch to SUBSCRIBE2 protocol | Ilya Dryomov | 3 | -83/+147 |
2016-03-25 | libceph: decouple hunting and subs management | Ilya Dryomov | 1 | -9/+22 |
2016-03-25 | libceph: move debugfs initialization into __ceph_open_session() | Ilya Dryomov | 2 | -51/+4 |
2016-03-20 | Merge branch 'mm-pkeys-for-linus' of git://git.kernel.org/pub/scm/linux/kerne... | Linus Torvalds | 1 | -1/+1 |
2016-03-17 | Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert... | Linus Torvalds | 1 | -45/+56 |
2016-02-24 | libceph: don't spam dmesg with stray reply warnings | Ilya Dryomov | 1 | -2/+2 |
2016-02-24 | libceph: use the right footer size when skipping a message | Ilya Dryomov | 1 | -2/+9 |
2016-02-24 | libceph: don't bail early from try_read() when skipping a message | Ilya Dryomov | 1 | -2/+2 |
2016-02-16 | mm/gup: Switch all callers of get_user_pages() to not pass tsk/mm | Dave Hansen | 1 | -1/+1 |
2016-02-04 | libceph: MOSDOpReply v7 encoding | Ilya Dryomov | 1 | -0/+10 |
2016-02-04 | crush: decode and initialize chooseleaf_stable | Ilya Dryomov | 1 | -5/+14 |
2016-02-04 | crush: add chooseleaf_stable tunable | Ilya Dryomov | 1 | -4/+14 |
2016-02-04 | crush: ensure take bucket value is valid | Ilya Dryomov | 1 | -1/+2 |
2016-02-04 | crush: ensure bucket id is valid before indexing buckets array | Ilya Dryomov | 1 | -2/+10 |
2016-01-27 | libceph: Remove unnecessary ivsize variables | Ilya Dryomov | 1 | -12/+8 |
2016-01-27 | libceph: Use skcipher | Herbert Xu | 1 | -41/+56 |
2016-01-21 | libceph: remove outdated comment | Ilya Dryomov | 1 | -4/+0 |
2016-01-21 | libceph: kill off ceph_x_ticket_handler::validity | Ilya Dryomov | 2 | -5/+2 |
2016-01-21 | libceph: invalidate AUTH in addition to a service ticket | Ilya Dryomov | 1 | -2/+14 |
2016-01-21 | libceph: fix authorizer invalidation, take 2 | Ilya Dryomov | 2 | -5/+23 |
2016-01-21 | libceph: clear messenger auth_retry flag if we fault | Ilya Dryomov | 1 | -3/+7 |
2016-01-21 | libceph: fix ceph_msg_revoke() | Ilya Dryomov | 1 | -18/+58 |
2016-01-21 | libceph: use list_for_each_entry_safe | Geliang Tang | 1 | -9/+3 |
2016-01-21 | libceph: use list_next_entry instead of list_entry_next | Geliang Tang | 1 | -5/+2 |
2015-11-13 | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sag... | Linus Torvalds | 5 | -87/+93 |
2015-11-05 | Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/... | Linus Torvalds | 2 | -4/+4 |
2015-11-02 | libceph: clear msg->con in ceph_msg_release() only | Ilya Dryomov | 2 | -28/+20 |
2015-11-02 | libceph: add nocephx_sign_messages option | Ilya Dryomov | 3 | -1/+20 |
2015-11-02 | libceph: stop duplicating client fields in messenger | Ilya Dryomov | 2 | -22/+10 |
2015-11-02 | libceph: drop authorizer check from cephx msg signing routines | Ilya Dryomov | 1 | -4/+1 |
2015-11-02 | libceph: msg signing callouts don't need con argument | Ilya Dryomov | 2 | -8/+10 |
2015-11-02 | libceph: evaluate osd_req_op_data() arguments only once | Ioana Ciornei | 1 | -5/+7 |
2015-11-02 | libceph: introduce ceph_x_authorizer_cleanup() | Ilya Dryomov | 2 | -12/+20 |
2015-11-02 | libceph: use local variable cursor instead of &msg->cursor | Shraddha Barke | 1 | -6/+5 |
2015-11-02 | libceph: remove con argument in handle_reply() | Shraddha Barke | 1 | -3/+2 |
2015-10-21 | KEYS: Merge the type-specific data with the payload data | David Howells | 2 | -4/+4 |
2015-10-16 | rbd: use writefull op for object size writes | Ilya Dryomov | 1 | -4/+9 |
2015-09-17 | libceph: don't access invalid memory in keepalive2 path | Ilya Dryomov | 1 | -4/+5 |
2015-09-11 | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sag... | Linus Torvalds | 6 | -66/+111 |
2015-09-09 | libceph: check data_len in ->alloc_msg() | Ilya Dryomov | 2 | -40/+18 |
2015-09-08 | libceph: use keepalive2 to verify the mon session is alive | Yan, Zheng | 3 | -13/+84 |
2015-09-08 | libceph: set 'exists' flag for newly up osd | Yan, Zheng | 1 | -1/+1 |
2015-09-08 | libceph: rename con_work() to ceph_con_workfn() | Ilya Dryomov | 1 | -3/+3 |
2015-09-08 | libceph: Avoid holding the zero page on ceph_msgr_slab_init errors | Benoît Canet | 1 | -5/+5 |
2015-09-08 | libceph: remove the unused macro AES_KEY_SIZE | Nicholas Krause | 1 | -4/+0 |
2015-09-04 | fs: create and use seq_show_option for escaping | Kees Cook | 1 | -2/+5 |
2015-07-09 | libceph: treat sockaddr_storage with uninitialized family as blank | Ilya Dryomov | 1 | -7/+7 |
2015-07-09 | libceph: enable ceph in a non-default network namespace | Ilya Dryomov | 2 | -7/+19 |
2015-07-02 | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sag... | Linus Torvalds | 10 | -119/+197 |
2015-07-01 | crush: fix a bug in tree bucket decode | Ilya Dryomov | 1 | -1/+1 |
2015-06-29 | libceph: Fix ceph_tcp_sendpage()'s more boolean usage | Benoît Canet | 1 | -1/+1 |
2015-06-25 | libceph: Remove spurious kunmap() of the zero page | Benoît Canet | 1 | -1/+0 |
2015-06-25 | crush: sync up with userspace | Ilya Dryomov | 4 | -75/+115 |
2015-06-25 | crush: fix crash from invalid 'take' argument | Ilya Dryomov | 1 | -2/+9 |
2015-06-25 | libceph: fix wrong name "Ceph filesystem for Linux" | Hong Zhiguo | 1 | -1/+1 |
2015-06-25 | libceph: a couple tweaks for wait loops | Ilya Dryomov | 2 | -5/+4 |
2015-06-25 | libceph: store timeouts in jiffies, verify user input | Ilya Dryomov | 3 | -20/+47 |
2015-06-25 | libceph: use kvfree() instead of open-coding it | Ilya Dryomov | 1 | -4/+1 |
2015-06-25 | libceph: allow setting osd_req_op's flags | Yan, Zheng | 1 | -9/+15 |
2015-06-25 | libceph: properly release STAT request's raw_data_in | Yan, Zheng | 1 | -0/+3 |
2015-06-01 | Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net | David S. Miller | 1 | -13/+20 |
2015-05-20 | Revert "libceph: clear r_req_lru_item in __unregister_linger_request()" | Ilya Dryomov | 1 | -2/+0 |
2015-05-20 | libceph: request a new osdmap if lingering request maps to no osd | Ilya Dryomov | 1 | -11/+20 |
2015-05-11 | net: Add a struct net parameter to sock_create_kern | Eric W. Biederman | 1 | -2/+2 |
2015-04-22 | crush: straw2 bucket type with an efficient 64-bit crush_ln() | Ilya Dryomov | 4 | -0/+306 |
2015-04-22 | crush: ensuring at most num-rep osds are selected | Ilya Dryomov | 1 | -4/+12 |
2015-04-22 | crush: drop unnecessary include from mapper.c | Ilya Dryomov | 1 | -1/+0 |
2015-04-20 | libceph: expose client options through debugfs | Ilya Dryomov | 1 | -0/+24 |
2015-04-20 | libceph, ceph: split ceph_show_options() | Ilya Dryomov | 1 | -0/+37 |
2015-04-20 | libceph: don't overwrite specific con error msgs | Ilya Dryomov | 1 | -12/+13 |
2015-04-07 | Revert "libceph: use memalloc flags for net IO" | Ilya Dryomov | 1 | -8/+1 |
2015-02-19 | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sag... | Linus Torvalds | 6 | -162/+54 |
2015-02-19 | libceph: kfree() in put_osd() shouldn't depend on authorizer | Ilya Dryomov | 1 | -2/+3 |
2015-02-19 | libceph: fix double __remove_osd() problem | Ilya Dryomov | 1 | -8/+18 |
2015-02-19 | libceph: tcp_nodelay support | Chaitanya Huilgol | 2 | -2/+28 |
2015-02-19 | libceph: use mon_client.c/put_generic_request() more | Ilya Dryomov | 1 | -2/+2 |
2015-02-19 | libceph: nuke pool op infrastructure | Ilya Dryomov | 3 | -148/+3 |
2015-02-11 | mm: gup: use get_user_pages_unlocked | Andrea Arcangeli | 1 | -4/+2 |
2015-01-08 | libceph: fix sparse endianness warnings | Ilya Dryomov | 2 | -2/+2 |
2014-12-17 | libceph: specify position of extent operation | Yan, Zheng | 1 | -13/+6 |
2014-12-17 | libceph: add CREATE osd operation support | Yan, Zheng | 1 | -20/+22 |
2014-12-17 | libceph: add SETXATTR/CMPXATTR osd operations support | Yan, Zheng | 1 | -0/+47 |
2014-12-17 | libceph: require cephx message signature by default | Yan, Zheng | 1 | -0/+13 |
2014-12-17 | libceph: message signature support | Yan, Zheng | 3 | -3/+103 |
2014-12-17 | libceph: store session key in cephx authorizer | Yan, Zheng | 2 | -7/+12 |
2014-12-17 | libceph: nuke ceph_kvfree() | Ilya Dryomov | 3 | -11/+3 |
2014-11-13 | libceph: change from BUG to WARN for __remove_osd() asserts | Ilya Dryomov | 1 | -2/+2 |
2014-11-13 | libceph: clear r_req_lru_item in __unregister_linger_request() | Ilya Dryomov | 1 | -0/+2 |
2014-11-13 | libceph: unlink from o_linger_requests when clearing r_osd | Ilya Dryomov | 1 | -0/+1 |
2014-11-13 | libceph: do not crash on large auth tickets | Ilya Dryomov | 1 | -37/+132 |
2014-10-31 | libceph: eliminate unnecessary allocation in process_one_ticket() | Ilya Dryomov | 1 | -15/+10 |
2014-10-30 | libceph: use memalloc flags for net IO | Mike Christie | 1 | -1/+9 |
2014-10-15 | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sag... | Linus Torvalds | 9 | -228/+153 |
2014-10-14 | libceph: ceph-msgr workqueue needs a resque worker | Ilya Dryomov | 1 | -1/+5 |
2014-10-14 | libceph: separate multiple ops with commas in debugfs output | Ilya Dryomov | 1 | -1/+2 |
2014-10-14 | libceph: sync osd op definitions in rados.h | Ilya Dryomov | 2 | -132/+8 |
2014-10-14 | libceph: reference counting pagelist | Yan, Zheng | 2 | -5/+6 |
2014-10-14 | libceph: don't try checking queue_work() return value | Ilya Dryomov | 1 | -10/+5 |
2014-10-14 | libceph: Convert pr_warning to pr_warn | Joe Perches | 5 | -37/+39 |
2014-10-14 | libceph: fix a use after free issue in osdmap_set_max_osd | Li RongQing | 1 | -16/+16 |
2014-10-14 | libceph: select CRYPTO_CBC in addition to CRYPTO_AES | Ilya Dryomov | 1 | -0/+1 |
2014-10-14 | libceph: resend lingering requests with a new tid | Ilya Dryomov | 1 | -19/+54 |
2014-10-14 | libceph: abstract out ceph_osd_request enqueue logic | Ilya Dryomov | 1 | -7/+17 |
2014-10-12 | Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/... | Linus Torvalds | 1 | -1/+0 |
2014-09-16 | KEYS: Remove key_type::match in favour of overriding default by match_preparse | David Howells | 1 | -1/+0 |
2014-09-10 | libceph: do not hard code max auth ticket len | Ilya Dryomov | 1 | -35/+29 |
2014-09-10 | libceph: add process_one_ticket() helper | Ilya Dryomov | 1 | -104/+124 |
2014-09-10 | libceph: gracefully handle large reply messages from the mon | Sage Weil | 1 | -0/+8 |
2014-08-13 | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sag... | Linus Torvalds | 2 | -55/+121 |
2014-08-09 | libceph: set last_piece in ceph_msg_data_pages_cursor_init() correctly | Ilya Dryomov | 1 | -1/+1 |
2014-07-22 | KEYS: Ceph: Use user_match() | David Howells | 1 | -6/+2 |
2014-07-22 | KEYS: Ceph: Use key preparsing | David Howells | 1 | -9/+15 |
2014-07-08 | libceph: drop osd ref when canceling con work | Ilya Dryomov | 1 | -4/+10 |
2014-07-08 | libceph: nuke ceph_osdc_unregister_linger_request() | Ilya Dryomov | 1 | -10/+0 |
2014-07-08 | libceph: introduce ceph_osdc_cancel_request() | Ilya Dryomov | 1 | -6/+25 |