{"push_id":667844425,"size":53,"distinct_size":53,"ref":"refs/heads/branch-rh7-3.10.0-123.1.2-ovz","head":"ea39e21a04e0010833a95d745a7e4a31cb85803a","before":"7d10a4007de110332ffb866532fb5bd2ebe7a26a","commits":[{"sha":"16d8b1d984f26100bf006ed93fcd47642401dd26","author":{"email":"92a5505f10e70d6be04c6ea75cda66fdd7decf37@odin.com","name":"Vasily Averin"},"message":"ve/net/printk: net_veboth_ratelimited introduced\n\nnet_veboth_ratelimited is required to save net-ratelimited messages\nboth into host and into containers dmesg buffers\n\nSigned-off-by:\tVasily Averin <vvs@openvz.org>\nAcked-by: Kirill Tkhai <ktkhai@odin.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/16d8b1d984f26100bf006ed93fcd47642401dd26"},{"sha":"8782918c418820d5127afa4a5db74c9b3eac3b82","author":{"email":"92a5505f10e70d6be04c6ea75cda66fdd7decf37@odin.com","name":"Vasily Averin"},"message":"ve/netfilter: ve_printk for \"nf_conntrack: table full\"\n\nport of diff-ve-printk-conntrack-tables-full from rh6-based kernels\n\n\"nf_conntrack: table full, dropping packet\" message\nshould be visible both in CT and on HN and\nshould contain CTID for reading simplicity.\n\nhttps://bugzilla.openvz.org/show_bug.cgi?id=2940\n\nSigned-off-by: Vasily Averin <vvs@openvz.org>\nAcked-by: Kirill Tkhai <ktkhai@odin.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/8782918c418820d5127afa4a5db74c9b3eac3b82"},{"sha":"fd28dbc730d49d4e141874d0d40c9bfedda1a6d5","author":{"email":"7a1ea01eee6961eb1e372e3508c2670446d086f4@odin.com","name":"Cyrill Gorcunov"},"message":"ve/netns: Set null only for nets ve is a keeper of\n\nIn venet we don't setup ve::ve_netns for nested net-namespaces\nbut on net cleanups we zap them unconditionally which ruines\nfurther net unshares. Fix it testing if the @net we're cleaning\nup does belong us.\n\nhttps://jira.sw.ru/browse/PSBM-33480\n\nv2:\n - same applies when net namespace is created inside container\n   itself: don't zap it until the net we're cleaning is the owner\nv3:\n - make it closer to pcs6 code\n\nSigned-off-by: Cyrill Gorcunov <gorcunov@odin.com>\nAcked-by: Andrew Vagin <avagin@openvz.org>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/fd28dbc730d49d4e141874d0d40c9bfedda1a6d5"},{"sha":"16a628a25414e4cca83d7aa8574fbe22f3e8f500","author":{"email":"e5b39230c99b4d3ebd6aa54f6d823f95134bc39d@odin.com","name":"Kirill Tkhai"},"message":"ve/devmnt: Introduce ve::devmnt list\n\n1)Porting patch \"ve: mount option list\" by Maxim Patlasov:\n\nThe patch adds new fields to ve_struct: devmnt_list and devmnt_mutex.\ndevmnt_list is the head of list of ve_devmnt structs. Each host block device\nvisible from CT can have no more than one struct ve_devmnt linked in\nve->devmnt_list. If ve_devmnt is present, it can be found by 'dev' field.\n\nEach ve_devmnt struct may bear two strings: hidden and allowed options.\nhidden_options will be automatically added to CT-user-supplied mount options\nafter checking allowed_options. Only options listed in allowed_options are\nallowed.\n\ndevmnt_mutex is to protect operations on the list of ve_devmnt structs.\n\n2)Porting patch \"vecalls: VE_CONFIGURE_MOUNT_OPTIONS\" by Maxim Patlasov.\n\nReworking the interface using cgroups. Each CT now has a file:\n\n[ve_cgroup_mnt_pnt]/[CTID]/ve.mount_opts\n\nfor configuring permittions for a block device. Below is permittions line\nexample:\n\n\"0 major:minor;1 balloon_ino=12,pfcache_csum,pfcache=/vz/pfcache;2 barrier=1\"\n\nHere, major:minor is a device, '1' starts comma-separated list of\nhidden options, and '2' is allowed ones.\n\nhttps://jira.sw.ru/browse/PSBM-32273\n\nSigned-off-by: Kirill Tkhai <ktkhai@odin.com>\nAcked-by: Maxim Patlasov <mpatlasov@openvz.org>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/16a628a25414e4cca83d7aa8574fbe22f3e8f500"},{"sha":"f0b82fb9c6285167f32919755886744db8797161","author":{"email":"e5b39230c99b4d3ebd6aa54f6d823f95134bc39d@odin.com","name":"Kirill Tkhai"},"message":"ve/fs/devmnt: process mount options\n\nPort patch diff-ve-fs-process-mount-options-check-and-insert by Maxim Patlasov:\n\nThe patch implements two kinds of processing mount options: check and insert.\nCheck is OK if and only if each option supplied by CT-user is present\namong options listed in allowed_options.\n\nInsert transforms mount options supplied by CT-user like this:\n\n<mount_options> = <hidden_options> + <user_supplied_mount_options>\n\nCheck is performed both for mount and remount. Insert - only for mount. All\nthis happens only for mount/remount inside CT and if proper ve_devmnt struct\nis found in ve->devmnt_list (searched by 'dev').\n\nhttps://jira.sw.ru/browse/PSBM-32273\n\nSigned-off-by: Kirill Tkhai <ktkhai@odin.com>\nAcked-by: Maxim Patlasov <mpatlasov@openvz.org>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/f0b82fb9c6285167f32919755886744db8797161"},{"sha":"3c5b30b0520f4ca33608737b25aef6c45c05fb71","author":{"email":"e5b39230c99b4d3ebd6aa54f6d823f95134bc39d@odin.com","name":"Kirill Tkhai"},"message":"ve/uts_ns: Implement cgroup interface to configure ve's os_release\n\nIt's the similar to VZCTL_VE_CONFIGURE ioctl in PCS6.\n\nNote: max_write_len is __NEW_UTS_LEN + 1, because I want to allow\n\necho ... > ve.os_release, which adds trailing '\\n' to the string\n(see man echo for details).\n\nExtra symbol will be cut in ve_os_release_write().\n\nhttps://jira.sw.ru/browse/PSBM-32273\n\nSigned-off-by: Kirill Tkhai <ktkhai@odin.com>\nReviewed-by: Cyrill Gorcunov <gorcunov@odin.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/3c5b30b0520f4ca33608737b25aef6c45c05fb71"},{"sha":"213b5800cbf1e1f36efaab61f2f49ea198bdb1e8","author":{"email":"92a5505f10e70d6be04c6ea75cda66fdd7decf37@odin.com","name":"Vasily Averin"},"message":"ve/cgroups: fake num_cgroups in /proc/cgroups output\n\nLike in rh6-based kernels,\n/proc/cgroups output inside container will show 1 in 'num_cgroups' column.\n\nhttps://jira.sw.ru/browse/PSBM-33400\n\nSigned-off-by: Vasily Averin <vvs@openvz.org>\n\nkhorenko@:\nThis is done in order to prevent people to try guessing the\nnumber of Containers running on a Hardware Node\nbecause even if the guess is correct, it gives no useful info,\nbut people can easily come to wrong conclusions.","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/213b5800cbf1e1f36efaab61f2f49ea198bdb1e8"},{"sha":"a1cd5a98145e5032cad97a0bf15e3e0904fad8d0","author":{"email":"0d62248ee021b6e01c0ee596a62a5b145b996974@parallels.com","name":"Vladimir Davydov"},"message":"mm/tswap/tcache: enable tcache and tswap by default\n\nWe use both of them => enable tcache and tswap by default.\n\nIn order to disable them add appropriate kernel boot options:\n\ttcache.enabled=0\n\ttswap.enabled=0\n\nhttps://jira.sw.ru/browse/PSBM-31757\nhttps://jira.sw.ru/browse/PSBM-32063\n\nSigned-off-by: Vladimir Davydov <vdavydov@parallels.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/a1cd5a98145e5032cad97a0bf15e3e0904fad8d0"},{"sha":"e4ba5fef962e96b36f0672ef239b5ec56cc8821a","author":{"email":"0d62248ee021b6e01c0ee596a62a5b145b996974@parallels.com","name":"Vladimir Davydov"},"message":"mm/vmalloc: do not account vmap_area to memcg\n\nTo avoid frequent TLB flushes, vmap_area structs are freed lazily, in\nbatches, once there are enough of them hanging around. As a result,\naccounting them to a memcg pins the memcg itself and its kmem caches for\nindefinitely long, which is not good. To avoid this, this patch makes\nallocations of vmap_area's go through the root cgroup. Since they are\nsmall and there cannot be many of them, not accounting them to memcg\nwon't open any security holes.\n\nSigned-off-by: Vladimir Davydov <vdavydov@parallels.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/e4ba5fef962e96b36f0672ef239b5ec56cc8821a"},{"sha":"bc411f061cc8878edb65db52b8e58ab2fa218186","author":{"email":"7a1ea01eee6961eb1e372e3508c2670446d086f4@odin.com","name":"Cyrill Gorcunov"},"message":"ve: device cgroup -- Implement devcgroup_seq_show_ve\n\nIn PCS7 cgroups are configured from user space, so there is\nno longer connection from ve to device cgroup via css as\nit was in PCS6. Instead we should open device cgroup explicitly.\n\nhttps://jira.sw.ru/browse/PSBM-33555\n\nv2 (by vdavydov@):\n - use ve::ve_name because we're switching to UUID based containers\n\nSigned-off-by: Cyrill Gorcunov <gorcunov@odin.com>\nReviewed-by: Vladimir Davydov <vdavydov@parallels.com>\n\nCC: Konstantin Khorenko <khorenko@odin.com>\nCC: Andrey Vagin <avagin@odin.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/bc411f061cc8878edb65db52b8e58ab2fa218186"},{"sha":"729323172bc760a2daf4d790a5bffc74ec10c04d","author":{"email":"7a1ea01eee6961eb1e372e3508c2670446d086f4@odin.com","name":"Cyrill Gorcunov"},"message":"ve/cgroups: Allow to attach non-self into ve cgroups, v3\n\nIn vzctl/libvzctl bundle we restore container like\n\n - create ve/$ctid cgroup\n - move self into this cgroup\n - run criu from inside\n\nSo that kernel code passes ve_can_attach test. In turn for\nour P.Haul project (which is managing live migration) the\nsituation is different -- it opens ve/$ctid but moves\ncriu service pid instead (so that the service will\nstart restore procedure). Which leads to situation\nwhere ve_can_attach fails with -EINVAL.\n\nBasically we need to\n\n1) Check that in case if task is getting attached to\n   VE cgroup it should be a single threaded task.\n\n2) In case of multithread task all threads should be\n   moved in one pass (this actually prepared by\n   cgroup_attach_task caller).\n\n3) In case if VE is stopping or starting only kernel\n   threads can attach.\n\nkhorenko@:\nCheck for thread_group_empty(task) is enough to be sure\nthe task is single-threaded.\n\nhttps://jira.sw.ru/browse/PSBM-33561\n\nReported-by: Nikita Spiridonov <nspiridonov@odin.com>\nSigned-off-by: Cyrill Gorcunov <gorcunov@odin.com>\n\nCC: Vladimir Davydov <vdavydov@odin.com>\nCC: Konstantin Khorenko <khorenko@odin.com>\nCC: Pavel Emelyanov <xemul@odin.com>\nCC: Andrey Vagin <avagin@odin.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/729323172bc760a2daf4d790a5bffc74ec10c04d"},{"sha":"77c59afe2b55a1dd631c3b8a6d3763eff8d09941","author":{"email":"0d62248ee021b6e01c0ee596a62a5b145b996974@parallels.com","name":"Vladimir Davydov"},"message":"ms/memcg: add page_cgroup_ino helper\n\nPatchset description: idle memory tracking\n\nThis patch set backports\n\n  https://lkml.org/lkml/2015/5/12/449\n\nwhich is required by vcmmd.\n\nIt is not yet clear if the original patch set will be accepted upstream\nas is, there still may be changes. However, I hope the user API will be\npreserved. If it is not, we will have to fix this in our kernel too.\n\nhttps://jira.sw.ru/browse/PSBM-32460\n\nVladimir Davydov (3):\n  memcg: add page_cgroup_ino helper\n  proc: add kpagecgroup file\n  proc: add kpageidle file\n\n===================================================\nThis patch description:\n\nHwpoison allows to filter pages by memory cgroup ino. To ahieve that, it\ncalls try_get_mem_cgroup_from_page(), then mem_cgroup_css(), and finally\nextracts the inode number from the cgroup returned. This looks bulky.\nSince in the next patch I need to get the ino of the memory cgroup a\npage is charged to too, in this patch I introduce the page_cgroup_ino()\nhelper.\n\nNote that page_cgroup_ino() only considers those pages that are charged\nto mem_cgroup->res (i.e. page_cgroup->mem_cgroup != NULL), and for\nothers it returns 0, while try_get_mem_cgroup_page(), used by hwpoison\nbefore, may extract the cgroup from a swapcache readahead page too.\nIgnoring swapcache readahead pages allows to call page_cgroup_ino() on\nunlocked pages, which is nice. Hwpoison users will hardly see any\ndifference.\n\nSigned-off-by: Vladimir Davydov <vdavydov@parallels.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/77c59afe2b55a1dd631c3b8a6d3763eff8d09941"},{"sha":"3e48c113a59f801934292fc89e6915b1d8a341a7","author":{"email":"0d62248ee021b6e01c0ee596a62a5b145b996974@parallels.com","name":"Vladimir Davydov"},"message":"ms/memcg/proc: add kpagecgroup file\n\nPatchset description: idle memory tracking\n\nThis patch set backports\n\n  https://lkml.org/lkml/2015/5/12/449\n\nwhich is required by vcmmd.\n\nIt is not yet clear if the original patch set will be accepted upstream\nas is, there still may be changes. However, I hope the user API will be\npreserved. If it is not, we will have to fix this in our kernel too.\n\nhttps://jira.sw.ru/browse/PSBM-32460\n\nVladimir Davydov (3):\n  memcg: add page_cgroup_ino helper\n  proc: add kpagecgroup file\n  proc: add kpageidle file\n\n===================================================\nThis patch description:\n\n/proc/kpagecgroup contains a 64-bit inode number of the memory cgroup\neach page is charged to, indexed by PFN. Having this information is\nuseful for estimating a cgroup working set size.\n\nThe file is present if CONFIG_PROC_PAGE_MONITOR && CONFIG_MEMCG.\n\nSigned-off-by: Vladimir Davydov <vdavydov@parallels.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/3e48c113a59f801934292fc89e6915b1d8a341a7"},{"sha":"35dcabf891ce1931294c5bf3d98e1203ff656432","author":{"email":"0d62248ee021b6e01c0ee596a62a5b145b996974@parallels.com","name":"Vladimir Davydov"},"message":"ms/mm/proc: add kpageidle file\n\nPatchset description: idle memory tracking\n\nThis patch set backports\n\n  https://lkml.org/lkml/2015/5/12/449\n\nwhich is required by vcmmd.\n\nIt is not yet clear if the original patch set will be accepted upstream\nas is, there still may be changes. However, I hope the user API will be\npreserved. If it is not, we will have to fix this in our kernel too.\n\nhttps://jira.sw.ru/browse/PSBM-32460\n\nVladimir Davydov (3):\n  memcg: add page_cgroup_ino helper\n  proc: add kpagecgroup file\n  proc: add kpageidle file\n\n===================================================\nThis patch description:\n\nKnowing the portion of memory that is not used by a certain application\nor memory cgroup (idle memory) can be useful for partitioning the system\nefficiently, e.g. by setting memory cgroup limits appropriately.\nCurrently, the only means to estimate the amount of idle memory provided\nby the kernel is /proc/PID/{clear_refs,smaps}: the user can clear the\naccess bit for all pages mapped to a particular process by writing 1 to\nclear_refs, wait for some time, and then count smaps:Referenced.\nHowever, this method has two serious shortcomings:\n\n - it does not count unmapped file pages\n - it affects the reclaimer logic\n\nTo overcome these drawbacks, this patch introduces two new page flags,\nIdle and Young, and a new proc file, /proc/kpageidle. A page's Idle flag\ncan only be set from userspace by setting bit in /proc/kpageidle at the\noffset corresponding to the page, and it is cleared whenever the page is\naccessed either through page tables (it is cleared in page_referenced()\nin this case) or using the read(2) system call (mark_page_accessed()).\nThus by setting the Idle flag for pages of a particular workload, which\ncan be found e.g. by reading /proc/PID/pagemap, waiting for some time to\nlet the workload access its working set, and then reading the kpageidle\nfile, one can estimate the amount of pages that are not used by the\nworkload.\n\nThe Young page flag is used to avoid interference with the memory\nreclaimer. A page's Young flag is set whenever the Access bit of a page\ntable entry pointing to the page is cleared by writing to kpageidle. If\npage_referenced() is called on a Young page, it will add 1 to its return\nvalue, therefore concealing the fact that the Access bit was cleared.\n\nNote, since there is no room for extra page flags on 32 bit, this\nfeature uses extended page flags when compiled on 32 bit.\n\n(on RH7 page ext is not available so make it depend on 64 bit)\nSigned-off-by: Vladimir Davydov <vdavydov@parallels.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/35dcabf891ce1931294c5bf3d98e1203ff656432"},{"sha":"09fe781813a8c4e74ad6f9621cf26acb705424f4","author":{"email":"0efd92c96f94c8deb6f4a1a28f66fdc5c58c0193@virtuozzo.com","name":"Andrey Smetanin"},"message":"ploop: fix accounting ploop_io_images_size\n\nploop_io_images_size is a global counter supposed to be total sum of io->size\nfor all io structs. However, actual size of image can be used by userspace.\nE.g. when userspace grows lower delta for merge operartion. This means that\nby the time ploop_dio_close() is called, actual size may differ slightly from\nthe size we initially accounted.\n\nThe patch fixes the problem by accurate accounting of images sizes: we can\nsubtruct from ploop_io_images_size only so many bytes as we actually added\nearlier.\n\nAnother fix is for growing lower delta in userspace: we try to catch up\nchanges made by userspace when kernel merge starts and ploop_dio_upgrade\nis being called.\n\nhttps://jira.sw.ru/browse/PSBM-19906\n\nSigned-off-by: Maxim V. Patlasov <MPatlasov@parallels.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/09fe781813a8c4e74ad6f9621cf26acb705424f4"},{"sha":"732676a0eafac636b18f060f06b79312e0ad829d","author":{"email":"0efd92c96f94c8deb6f4a1a28f66fdc5c58c0193@virtuozzo.com","name":"Andrey Smetanin"},"message":"ploop: fix dio_fsync wait\n\nwe MUST wait for writeback to finish before file->f_op->fsync.\n\nhttps://jira.sw.ru/browse/PSBM-18049\n\nSigned-off-by: Dmitry Monakhov <dmonakhov@openvz.org>\n\nAcked-by: Maxim V. Patlasov <mpatlasov@parallels.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/732676a0eafac636b18f060f06b79312e0ad829d"},{"sha":"0385f754e9f680c7d5095ae981fe29c1b6e7323a","author":{"email":"0efd92c96f94c8deb6f4a1a28f66fdc5c58c0193@virtuozzo.com","name":"Andrey Smetanin"},"message":"ploop: check new size of block device on ioctl(GROW)\n\nReturn error if userspace attepmts to grow block device above limits\nimposed by ploop1 formats.\n\nhttps://jira.sw.ru/browse/PSBM-21027\n\nSigned-off-by: Maxim Patlasov <MPatlasov@parallels.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/0385f754e9f680c7d5095ae981fe29c1b6e7323a"},{"sha":"8854414d2d97abd7ab86d4c9d1c74d9b2fc04c3c","author":{"email":"0efd92c96f94c8deb6f4a1a28f66fdc5c58c0193@virtuozzo.com","name":"Andrey Smetanin"},"message":"ploop: prevent dangerous ploop-umount\n\nUmounting ploop device if inner fs is still mounted on it leads to\nnumerous complains in kernel logs like:\n\nVFS: Busy inodes after unmount. sb = ffff880108987000, fs type = ext4, sb count = 2, sb->s_root = /\n\nand is not what user expected. The patch adds some protection from dummy\nuserspace mistakes: do not allow to stop ploop device (this is the first step\nof ploop-umount) if user uses /dev/ploopNp1 for ioctl, or if someone (inner fs)\nis still using the device.\n\nhttps://jira.sw.ru/browse/PSBM-21474\n\nSigned-off-by: Maxim Patlasov <MPatlasov@parallels.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/8854414d2d97abd7ab86d4c9d1c74d9b2fc04c3c"},{"sha":"c25ed54c1a19bc8c11fcc472c3e4869c210eca97","author":{"email":"0efd92c96f94c8deb6f4a1a28f66fdc5c58c0193@virtuozzo.com","name":"Andrey Smetanin"},"message":"ploop: prevent disclosure 4 bytes of the stack kernel\n\n     Memory leak (4 bytes) in the ploop_getdevice_ioc function.\n\n          217401 +static int ploop_getdevice_ioc(unsigned long arg)\n          217402 +{\n          217403 +       int err;\n          217404 +       int index = 0;\n          217405 +       struct rb_node *n;\n          217406 +       struct ploop_getdevice_ctl ctl;\n          217407 +\n          217408 +       mutex_lock(&ploop_devices_mutex);\n          217409 +       for (n = rb_first(&ploop_devices_tree); n; n = rb_next(n), index++) {\n          217410 +               struct ploop_device *plo;\n          217411 +               plo = rb_entry(n, struct ploop_device, link);\n          217412 +               if (plo->index != index || list_empty(&plo->map.delta_list))\n          217413 +                       break;\n          217414 +       }\n          217415 +       mutex_unlock(&ploop_devices_mutex);\n          217416 +\n          217417 +       ctl.minor = index << PLOOP_PART_SHIFT;\n          217418 +       if (ctl.minor & ~MINORMASK)\n          217419 +               return -ERANGE;\n          217420 +       err = copy_to_user((void*)arg, &ctl, sizeof(ctl));\n          217421 +       return err;\n          217422 +}\n\n     The ploop_getdevice_ioc() function copy to user the\nploop_getdevice_ctl structure but it initialize juste the 'minor'\nattribute. It's possible to disclosure 4 bytes of the stack kernel via\nthe '__mbz1' attribute.\n\n     Below the 'ploop_getdevice_ctl' structure :\n\n         3772915 +struct ploop_getdevice_ctl\n         3772916 +{\n         3772917 +       __u32   minor;\n         3772918 +       __u32   __mbz1;\n         3772919 +} __attribute__ ((aligned (8)));\n\nSigned-off-by: Andrey Vagin <avagin@openvz.org>\n\nReported-by: Jonathan Salwan (Sysdream Security Laboratory) <jonathan.salwan@gmail.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/c25ed54c1a19bc8c11fcc472c3e4869c210eca97"},{"sha":"0672d54eddddd5735a248093d1a89485872ea5b0","author":{"email":"0efd92c96f94c8deb6f4a1a28f66fdc5c58c0193@virtuozzo.com","name":"Andrey Smetanin"},"message":"ploop: report holes in pio_direct (v2)\n\nWe have not implemented the support of sparce files yet. Let's at least\nprint a message more descriptive than common:\n\n[ 3460.838071] ploop_set_error=-22 on ploop44006\n\nChanged in v2:\n - used ploop_msg_once for reporting partially uninitialized extent\n\nhttps://jira.sw.ru/browse/PSBM-20770\n\nSigned-off-by: Maxim Patlasov <MPatlasov@parallels.com>\n\nAcked-by: Andrew Vagin <avagin@parallels.com>","distinct":true,"url":"https://api.github.com/repos/OpenVZ/vzkernel/commits/0672d54eddddd5735a248093d1a89485872ea5b0"}]}