Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'nfsd-6.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux

Pull nfsd fix from Chuck Lever:
"Address an NFSD regression introduced during the 6.0 merge window"

* tag 'nfsd-6.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
NFSD: fix regression with setting ACLs.

+9 -10
+9 -10
fs/nfsd/vfs.c
··· 300 300 static void 301 301 nfsd_sanitize_attrs(struct inode *inode, struct iattr *iap) 302 302 { 303 + /* Ignore mode updates on symlinks */ 304 + if (S_ISLNK(inode->i_mode)) 305 + iap->ia_valid &= ~ATTR_MODE; 306 + 303 307 /* sanitize the mode change */ 304 308 if (iap->ia_valid & ATTR_MODE) { 305 309 iap->ia_mode &= S_IALLUGO; ··· 357 353 int accmode = NFSD_MAY_SATTR; 358 354 umode_t ftype = 0; 359 355 __be32 err; 360 - int host_err; 356 + int host_err = 0; 361 357 bool get_write_count; 362 358 bool size_change = (iap->ia_valid & ATTR_SIZE); 363 359 ··· 394 390 395 391 dentry = fhp->fh_dentry; 396 392 inode = d_inode(dentry); 397 - 398 - /* Ignore any mode updates on symlinks */ 399 - if (S_ISLNK(inode->i_mode)) 400 - iap->ia_valid &= ~ATTR_MODE; 401 - 402 - if (!iap->ia_valid) 403 - return 0; 404 393 405 394 nfsd_sanitize_attrs(inode, iap); 406 395 ··· 445 448 goto out_unlock; 446 449 } 447 450 448 - iap->ia_valid |= ATTR_CTIME; 449 - host_err = notify_change(&init_user_ns, dentry, iap, NULL); 451 + if (iap->ia_valid) { 452 + iap->ia_valid |= ATTR_CTIME; 453 + host_err = notify_change(&init_user_ns, dentry, iap, NULL); 454 + } 450 455 451 456 out_unlock: 452 457 if (attr->na_seclabel && attr->na_seclabel->len)