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

Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd

Pull exofs changes from Boaz Harrosh:
"These are just 3 patches, the last two are bug fixes on the error
paths in exofs.

The important patch is the one to osd_uld which adds sysfs info to osd
devices for use by user-mode clustering discovery software. I'm
already sitting on this patch since before February this year, It is
important for some of the big installation cluster systems, who's been
compiling their own kernel just for that patch."

Ugh. The osd_uld patch already went through the SCSI tree, so this was
kind of pointless. But at least it has the two small error-path fixes..

* 'for-linus' of git://git.open-osd.org/linux-open-osd:
exofs: don't leak io_state and pages on read error
exofs: clean up the correct page collection on write error
osduld: Add osdname & systemid sysfs at scsi_osd class

+9 -7
+9 -7
fs/exofs/inode.c
··· 361 361 return 0; 362 362 363 363 err: 364 - if (!pcol->read_4_write) 365 - _unlock_pcol_pages(pcol, ret, READ); 366 - 367 - pcol_free(pcol); 368 - 364 + if (!pcol_copy) /* Failed before ownership transfer */ 365 + pcol_copy = pcol; 366 + _unlock_pcol_pages(pcol_copy, ret, READ); 367 + pcol_free(pcol_copy); 369 368 kfree(pcol_copy); 369 + 370 370 return ret; 371 371 } 372 372 ··· 676 676 return 0; 677 677 678 678 err: 679 - _unlock_pcol_pages(pcol, ret, WRITE); 680 - pcol_free(pcol); 679 + if (!pcol_copy) /* Failed before ownership transfer */ 680 + pcol_copy = pcol; 681 + _unlock_pcol_pages(pcol_copy, ret, WRITE); 682 + pcol_free(pcol_copy); 681 683 kfree(pcol_copy); 682 684 683 685 return ret;