{"push_id":4358437963,"size":905,"distinct_size":905,"ref":"refs/heads/master","head":"cb8a27c4fce78dd2b3f2ee5893a146751a1ca613","before":"446efaff1ed794e0f0a265fa3811a1c7ae7d00a8","commits":[{"sha":"e509d6e9c1ab54af257d4ed95b30d41e3d786857","author":{"name":"Al Viro","email":"de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk"},"message":"autofs_clear_leaf_automount_flags(): use ino->count instead of ->d_subdirs\n\nWe want to find out if the parent will become empty after we remove\nthe victim of rmdir().  Checking if the victim is the only element\nof parent's ->d_subdirs is completely wrong - e.g. opening the parent\nwill end up with a cursor added to its ->d_parent and fooling the\ncheck.\n\nWe do maintain ino->count - 0 for anything removed, 1 + number of\nchildren for anything live.  Which gives us precisely what we need\nfor that check...\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/e509d6e9c1ab54af257d4ed95b30d41e3d786857"},{"sha":"41ca19740a0e772eff1f9ba67293649feb836662","author":{"name":"Al Viro","email":"de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk"},"message":"autofs: get rid of pointless checks around ->count handling\n\n* IS_ROOT can't be true for unlink or rmdir victim\n* any positive autofs dentry has non-NULL autofs_dentry_ino()\n* autofs symlink can't have ->count other than 1\n* autofs empty directory can't have ->count other than 1\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/41ca19740a0e772eff1f9ba67293649feb836662"},{"sha":"c3aed16680cd0c0e5abf1bfc0dc1338e6a41b29f","author":{"name":"Al Viro","email":"de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk"},"message":"autofs_dir_rmdir(): check ino->count for deciding whether it's empty...\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/c3aed16680cd0c0e5abf1bfc0dc1338e6a41b29f"},{"sha":"850d71acd52cd331474116fbd60cf8b3f3ded93e","author":{"name":"Al Viro","email":"de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk"},"message":"autofs: don't bother with atomics for ino->count\n\nAll writers are serialized on inode->i_rwsem.  So are the readers\noutside of expire.c.  And the readers in expire.c are in the\ncode that really doesn't care about narrow races - it's looking\nfor expiry candidates and its callers have to cope with the\npossibility of a good candidate becoming busy right under them.\n\nNo point bothering with atomic operations - just use int and\nmark the non-serialized readers with READ_ONCE().\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/850d71acd52cd331474116fbd60cf8b3f3ded93e"},{"sha":"e200327708e691e53b99e4da38e53c0457fba6c1","author":{"name":"Ben Dooks","email":"0b051c53bf6ec41a37761bf9736dc587af5e4a2e@codethink.co.uk"},"message":"fs/fnctl: fix missing __user in fcntl_rw_hint()\n\nThe fcntl_rw_hint() has a missing __user annotation in\nthe code when assinging argp. Add this to fix the\nfollowing sparse warnings:\n\nfs/fcntl.c:280:22: warning: incorrect type in initializer (different address spaces)\nfs/fcntl.c:280:22:    expected unsigned long long [usertype] *argp\nfs/fcntl.c:280:22:    got unsigned long long [noderef] [usertype] <asn:1> *\nfs/fcntl.c:287:34: warning: incorrect type in argument 1 (different address spaces)\nfs/fcntl.c:287:34:    expected void [noderef] <asn:1> *to\nfs/fcntl.c:287:34:    got unsigned long long [usertype] *argp\nfs/fcntl.c:291:40: warning: incorrect type in argument 2 (different address spaces)\nfs/fcntl.c:291:40:    expected void const [noderef] <asn:1> *from\nfs/fcntl.c:291:40:    got unsigned long long [usertype] *argp\nfs/fcntl.c:303:34: warning: incorrect type in argument 1 (different address spaces)\nfs/fcntl.c:303:34:    expected void [noderef] <asn:1> *to\nfs/fcntl.c:303:34:    got unsigned long long [usertype] *argp\nfs/fcntl.c:307:40: warning: incorrect type in argument 2 (different address spaces)\nfs/fcntl.c:307:40:    expected void const [noderef] <asn:1> *from\nfs/fcntl.c:307:40:    got unsigned long long [usertype] *argp\n\nSigned-off-by: Ben Dooks <ben.dooks@codethink.co.uk>\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/e200327708e691e53b99e4da38e53c0457fba6c1"},{"sha":"2658ce095df583cdf9ede475ec4da0b3cc7f7b05","author":{"name":"Ben Dooks","email":"0b051c53bf6ec41a37761bf9736dc587af5e4a2e@codethink.co.uk"},"message":"fs/namespace: add __user to open_tree and move_mount syscalls\n\nThw open_tree and move_mount syscalls take names from the\nuser, so add the __user to these to ensure the following\nwarnings from sparse are fixed:\n\nfs/namespace.c:2392:35: warning: incorrect type in argument 2 (different address spaces)\nfs/namespace.c:2392:35:    expected char const [noderef] <asn:1> *name\nfs/namespace.c:2392:35:    got char const *filename\nfs/namespace.c:3541:38: warning: incorrect type in argument 2 (different address spaces)\nfs/namespace.c:3541:38:    expected char const [noderef] <asn:1> *name\nfs/namespace.c:3541:38:    got char const *from_pathname\nfs/namespace.c:3550:36: warning: incorrect type in argument 2 (different address spaces)\nfs/namespace.c:3550:36:    expected char const [noderef] <asn:1> *name\nfs/namespace.c:3550:36:    got char const *to_pathname\n\nSigned-off-by: Ben Dooks <ben.dooks@codethink.co.uk>\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/2658ce095df583cdf9ede475ec4da0b3cc7f7b05"},{"sha":"5c8b0dfc6f4a5e6c707827d0172fc1572e689094","author":{"name":"Al Viro","email":"de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk"},"message":"make __d_alloc() static\n\nno users outside of fs/dcache.c\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/5c8b0dfc6f4a5e6c707827d0172fc1572e689094"},{"sha":"6cb48c943b584ad8148216b3e494e9478ddf80d7","author":{"name":"Al Viro","email":"de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk"},"message":"..._nested() analogue of lockref_get()\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/6cb48c943b584ad8148216b3e494e9478ddf80d7"},{"sha":"fbc4ede25c1e935bb3a30df79d15d5fd9a3522ef","author":{"name":"Al Viro","email":"de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk"},"message":"microoptimize hlist_add_{before,behind}\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/fbc4ede25c1e935bb3a30df79d15d5fd9a3522ef"},{"sha":"e004197ddf27154c17bea009a05d369c7956d65a","author":{"name":"Olga Kornievskaia","email":"cf4f46655517f93ff1397f9b2475c875481d562e@netapp.com"},"message":"NFSD fill-in netloc4 structure\n\nnfs.4 defines nfs42_netaddr structure that represents netloc4.\n\nPopulate needed fields from the sockaddr structure.\n\nThis will be used by flexfiles and 4.2 inter copy\n\nSigned-off-by: Olga Kornievskaia <kolga@netapp.com>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/e004197ddf27154c17bea009a05d369c7956d65a"},{"sha":"1285cd571fbce1a7d489b15d73fab42373ce7523","author":{"name":"Olga Kornievskaia","email":"67b943c6264d3f49deea100299e06d6a682fa6d6@gmail.com"},"message":"NFSD add ca_source_server<> to COPY\n\nDecode the ca_source_server list that's sent but only use the\nfirst one. Presence of non-zero list indicates an \"inter\" copy.\n\nSigned-off-by: Andy Adamson <andros@netapp.com>\nSigned-off-by: Olga Kornievskaia <kolga@netapp.com>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/1285cd571fbce1a7d489b15d73fab42373ce7523"},{"sha":"996d4850c4774f49cd944fbc883177935208717f","author":{"name":"Olga Kornievskaia","email":"67b943c6264d3f49deea100299e06d6a682fa6d6@gmail.com"},"message":"NFSD COPY_NOTIFY xdr\n\nSigned-off-by: Olga Kornievskaia <kolga@netapp.com>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/996d4850c4774f49cd944fbc883177935208717f"},{"sha":"dbd4c2dd8f13ae40112081df5d9e19ff040f773d","author":{"name":"Olga Kornievskaia","email":"67b943c6264d3f49deea100299e06d6a682fa6d6@gmail.com"},"message":"NFSD add COPY_NOTIFY operation\n\nIntroducing the COPY_NOTIFY operation.\n\nCreate a new unique stateid that will keep track of the copy\nstate and the upcoming READs that will use that stateid.\nEach associated parent stateid has a list of copy\nnotify stateids. A copy notify structure makes a copy of\nthe parent stateid and a clientid and will use it to look\nup the parent stateid during the READ request (suggested\nby Trond Myklebust <trond.myklebust@hammerspace.com>).\n\nAt nfs4_put_stid() time, we walk the list of the associated\ncopy notify stateids and delete them.\n\nLaundromat thread will traverse globally stored copy notify\nstateid in idr and notice if any haven't been referenced in the\nlease period, if so, it'll remove them.\n\nReturn single netaddr to advertise to the copy.\n\nSuggested-by: Trond Myklebust <trond.myklebust@hammerspace.com>\nSigned-off-by: Olga Kornievskaia <kolga@netapp.com>\nSigned-off-by: Andy Adamson <andros@netapp.com>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/dbd4c2dd8f13ae40112081df5d9e19ff040f773d"},{"sha":"f3dee17721a0f61b89ea36f2e1a8a4ec45ce303b","author":{"name":"Olga Kornievskaia","email":"67b943c6264d3f49deea100299e06d6a682fa6d6@gmail.com"},"message":"NFSD check stateids against copy stateids\n\nIncoming stateid (used by a READ) could be a saved copy stateid.\nUsing the provided stateid, look it up in the list of copy_notify\nstateids. If found, use the parent's stateid and parent's clid\nto look up the parent's stid to do the appropriate checks.\n\nUpdate the copy notify timestamp (cpntf_time) with current time\nthis making it 'active' so that laundromat thread will not delete\ncopy notify state.\n\nSigned-off-by: Olga Kornievskaia <kolga@netapp.com>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/f3dee17721a0f61b89ea36f2e1a8a4ec45ce303b"},{"sha":"dd4320a29d65778d6dd699eb784167b3146a77ef","author":{"name":"Olga Kornievskaia","email":"cf4f46655517f93ff1397f9b2475c875481d562e@netapp.com"},"message":"NFSD generalize nfsd4_compound_state flag names\n\nAllow for sid_flag field non-stateid use.\n\nSigned-off-by: Andy Adamson <andros@netapp.com>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/dd4320a29d65778d6dd699eb784167b3146a77ef"},{"sha":"4e48f1cccab3a9cca3e963048cbf5043200cdb37","author":{"name":"Olga Kornievskaia","email":"67b943c6264d3f49deea100299e06d6a682fa6d6@gmail.com"},"message":"NFSD: allow inter server COPY to have a STALE source server fh\n\nThe inter server to server COPY source server filehandle\nis a foreign filehandle as the COPY is sent to the destination\nserver.\n\nSigned-off-by: Olga Kornievskaia <kolga@netapp.com>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/4e48f1cccab3a9cca3e963048cbf5043200cdb37"},{"sha":"d5e54eeb0e3d6cb0c7ac57115ae466f1e3be1802","author":{"name":"Olga Kornievskaia","email":"cf4f46655517f93ff1397f9b2475c875481d562e@netapp.com"},"message":"NFSD add nfs4 inter ssc to nfsd4_copy\n\nGiven a universal address, mount the source server from the destination\nserver.  Use an internal mount. Call the NFS client nfs42_ssc_open to\nobtain the NFS struct file suitable for nfsd_copy_range.\n\nAbility to do \"inter\" server-to-server depends on the an nfsd kernel\nparameter \"inter_copy_offload_enable\".\n\nSigned-off-by: Olga Kornievskaia <kolga@netapp.com>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/d5e54eeb0e3d6cb0c7ac57115ae466f1e3be1802"},{"sha":"d41efb522e902364ab09c782d511c1bedc388ddd","author":{"name":"Al Viro","email":"de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk"},"message":"fs/namei.c: pull positivity check into follow_managed()\n\nThere are 4 callers; two proceed to check if result is positive and\nfail with ENOENT if it isn't; one (in handle_lookup_down()) is\nguaranteed to yield positive and one (in lookup_fast()) is _preceded_\nby positivity check.\n\nHowever, follow_managed() on a negative dentry is a (fairly cheap)\nno-op on anything other than autofs.  And negative autofs dentries\nare never hashed, so lookup_fast() is not going to run into one\nof those.  Moreover, successful follow_managed() on a _positive_\ndentry never yields a negative one (and we significantly rely upon\nthat in callers of lookup_fast()).\n\nIn other words, we can easily transpose the positivity check and\nthe call of follow_managed() in lookup_fast().  And that allows\nto fold the positivity check *into* follow_managed(), simplifying\nlife for the code downstream of its calls.\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/d41efb522e902364ab09c782d511c1bedc388ddd"},{"sha":"6c2d4798a8d16cf4f3a28c3cd4af4f1dcbbb4d04","author":{"name":"Al Viro","email":"de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk"},"message":"new helper: lookup_positive_unlocked()\n\nMost of the callers of lookup_one_len_unlocked() treat negatives are\nERR_PTR(-ENOENT).  Provide a helper that would do just that.  Note\nthat a pinned positive dentry remains positive - it's ->d_inode is\nstable, etc.; a pinned _negative_ dentry can become positive at any\npoint as long as you are not holding its parent at least shared.\nSo using lookup_one_len_unlocked() needs to be careful;\nlookup_positive_unlocked() is safer and that's what the callers\nend up open-coding anyway.\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/6c2d4798a8d16cf4f3a28c3cd4af4f1dcbbb4d04"},{"sha":"e84009336711d2bba885fc9cea66348ddfce3758","author":{"name":"Al Viro","email":"de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk"},"message":"fix dget_parent() fastpath race\n\nWe are overoptimistic about taking the fast path there; seeing\nthe same value in ->d_parent after having grabbed a reference\nto that parent does *not* mean that it has remained our parent\nall along.\n\nThat wouldn't be a big deal (in the end it is our parent and\nwe have grabbed the reference we are about to return), but...\nthe situation with barriers is messed up.\n\nWe might have hit the following sequence:\n\nd is a dentry of /tmp/a/b\nCPU1:\t\t\t\t\tCPU2:\nparent = d->d_parent (i.e. dentry of /tmp/a)\n\t\t\t\t\trename /tmp/a/b to /tmp/b\n\t\t\t\t\trmdir /tmp/a, making its dentry negative\ngrab reference to parent,\nend up with cached parent->d_inode (NULL)\n\t\t\t\t\tmkdir /tmp/a, rename /tmp/b to /tmp/a/b\nrecheck d->d_parent, which is back to original\ndecide that everything's fine and return the reference we'd got.\n\nThe trouble is, caller (on CPU1) will observe dget_parent()\nreturning an apparently negative dentry.  It actually is positive,\nbut CPU1 has stale ->d_inode cached.\n\nUse d->d_seq to see if it has been moved instead of rechecking ->d_parent.\nNOTE: we are *NOT* going to retry on any kind of ->d_seq mismatch;\nwe just go into the slow path in such case.  We don't wait for ->d_seq\nto become even either - again, if we are racing with renames, we\ncan bloody well go to slow path anyway.\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/sergey-senozhatsky/linux-next-ss/commits/e84009336711d2bba885fc9cea66348ddfce3758"}]}
{"actor":{"display_login":"sergey-senozhatsky"}}